在编写EF+Linq的过程中,可能会遇到“在 LINQ to Entities 查询中无法构造实体或复杂类型”的问题。 解决方法:从原有类型中继承一个子类,然后创建子类实例 下面是例子: private static
解决方法:从原有类型中继承一个子类,然后创建子类实例
下面是例子:
private static void Main(string[] args) { Boolean s = false; using(Northwind dbo = new Northwind()) { IQueryable<Customers> query; if(s) { // 错误的写法,会出现 “在 LINQ to Entities 查询中无法构造实体或复杂类型”错误 query = from a in dbo.Customers select new Customers() { ID=a.ID, Address = a.Address }; } else { // 解决方法,从原有类型中继承一个子类 query = from a in dbo.Customers select new CustomerChild() { ID=a.ID, Address = a.Address }; } var c = query.ToList(); Console.WriteLine(c.Count); Console.Read(); } } private class CustomerChild : Customers { }