Entity framework &引用;无法将lambda表达式转换为类型';字符串';因为它不是委托类型;在.NET4.5中

Entity framework &引用;无法将lambda表达式转换为类型';字符串';因为它不是委托类型;在.NET4.5中,entity-framework,Entity Framework,我正在一台测试机器上试用VS2012中现有的.NET 4.0解决方案(只安装了VS2012和SQL Server 2008),当我尝试将lambda语法与Include扩展方法一起使用时,遇到上述错误 解决方案的现有版本有一个对EntityFramework.dll的引用,这是我使用Include方法必须添加的引用,但我在VS2012中查看的升级版本没有这样的引用,我也无法在另一台计算机上的位置找到该名称的dll。System.Data.Entity的using语句变灰,因为ReSharper认

我正在一台测试机器上试用VS2012中现有的.NET 4.0解决方案(只安装了VS2012和SQL Server 2008),当我尝试将lambda语法与Include扩展方法一起使用时,遇到上述错误

解决方案的现有版本有一个对EntityFramework.dll的引用,这是我使用Include方法必须添加的引用,但我在VS2012中查看的升级版本没有这样的引用,我也无法在另一台计算机上的位置找到该名称的dll。System.Data.Entity的using语句变灰,因为ReSharper认为不需要它。不知道为什么

示例代码:这是现有解决方案中的内容

using (var context = new RSSFeedsEntities()) {  
  WebSite someSite = context.WebSites.Include(w => w.Feeds).FirstOrDefault(w => w.WebSiteID == 1);  
}

你知道怎么解决这个问题吗?谢谢

啊哈!找到了答案

微软,在他们的智慧中,做出了(在我看来)盲目愚蠢的决定,不让Entity Framework像其他开发框架一样安装,而是让最新版本只能作为NuGet软件包提供。我无法理解他们为什么这么做,因为我现在必须为每个解决方案分别安装EF,而不是安装it cone并立即提供

无论如何,我使用NuGet软件包管理器安装EF 5.0,错误消失了


希望这对其他人有所帮助。

您能添加示例代码吗?已添加。正如我之前指出的,这段代码在VS2010版本中运行良好,是标准的东西。感谢他们这样做,这样EF就可以独立下载,并且更容易被引用/部署,而不必访问您想要部署应用程序的每台服务器并确保安装了EF。此外,一旦它作为nuget包添加,任何其他开发人员在解决方案上也不必为了运行解决方案而下载EF,他们只需重建它,nuget会负责拉入依赖项。另一个优点是升级路径,但没有足够的评论空间来讨论这一部分。