Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法在'<&燃气轮机;f__AnonymousType1`2正在使用bindingSource3.AddNew();_C#_Linq_Entity Framework - Fatal编程技术网

C# 无法在'<&燃气轮机;f__AnonymousType1`2正在使用bindingSource3.AddNew();

C# 无法在'<&燃气轮机;f__AnonymousType1`2正在使用bindingSource3.AddNew();,c#,linq,entity-framework,C#,Linq,Entity Framework,当我使用以下代码时,会发生错误 testtelContext db = new testtelContext(); var qry = (from p in db.firstlasts join i in db.firstnames on p.Idfname equals i.Idfname s

当我使用以下代码时,会发生错误

testtelContext db = new testtelContext();
        var qry = (from p in db.firstlasts
                              join i in db.firstnames
                                  on p.Idfname equals i.Idfname
                              select new 
                              {
                                  id = p.idfl,
                                  name = i.fname

                              }).ToList();
        bindingSource3.DataSource = qry;

        dataGridView5.DataSource = bindingSource3;
        bindingSource3.AddNew(); 
使用bindingSource3.AddNew()时出错


错误:无法对“f_uAnonymousType1
2[[System.Int32,mscorlib,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089],[System.String,mscorlib,Version=4.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089]”类型调用AddNew。此类型没有公共默认构造函数。您可以在“f_uuAnonymousType1”
2[[System.Int32,mscorlib,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089],[System.String,mscorlib,Version=4.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089]]'如果设置AllowNew=true并处理AddingNew事件,则键入。

如果数据源是匿名类型对象的集合,则不能调用
AddNew

因此,您必须声明自定义类:

public class BindingItem
{
    public int id { get; set;}
    public string name { get; set; }
}
并将查询更改为返回该对象的集合,而不是匿名对象:

var qry = (from p in db.firstlasts
           join i in db.firstnames on p.Idfname equals i.Idfname
           select new BindingItem 
           {
               id = p.idfl,
               name = i.fname
           }).ToList();

匿名类是只读的,因此
AddNew
没有意义。