使用包含在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式的好文章