使用包含在entity framework4中的lambdaexpression式
我见过很多关于如何克服这个问题的文章,都与CTP4相关,或者添加了我自己的扩展方法。
是否有一个“官方”EF4包括使用包括lambdaexpression式(包括第一级关系,也是第二级和更多级别)的方式,还是最终没有包含在RTM?
它有一个 – 我会很高兴学习如何做,因为在我的代码中使用lambdaexpression式(使用#system.data.entity#system.data.linq)仍然给我:
无法将lambdaexpression式转换为“string”types,因为它不是委托types:
var customers = from c in context.Customers.Include(c=>c.Phone)
Entity Framework 4.1的RTM版本实际上在EntityFramework.dll
文件中包含扩展方法 ,用于通过Include
函数使用lambda进行加载。 只要在你的项目中包含DLL,你应该能够编写如下代码:
var princesses1 = context.Princesses.Include(p => p.Unicorns).ToList();
请记住添加一个导入/使用语句来包含System.Data.Entity命名空间。 否则,编译器将无法find扩展方法。 例如:
using System.Data.Entity;
有关更多信息,请参阅此ADO.NET团队博客文章。
虽然这是隐含在这个问题中,对于任何有相同问题的人,他们不能使用包括lambdaexpression式。确保你有这个:
using System.Data.Entity;
不,目前没有官方支持在RTM中包含lambdaexpression式。 我正在使用这个 。
当我们在谈论CTP4时,我们是指entity framework特征。 这是比EF4更新的API。 它主要包括Code First和其他一些改进。
include方法中有关lambdaexpression式的好文章