0

尝试使用 Visual Studio 2012、Entity Framework 5.0 数据库优先方法来生成我的 edmx。

当我从数据库 VS 2012 生成 EDMX 时 - 说

成功注册程序集'System.Data.Entity, Version=4.0.0.0;

web.config文件也说

<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral.../>
  1. 我看到EntityFramework并且System.Data.Entity都在参考文献中列出。 EntityFramework显示在包文件夹中并System.Data.Entity指向 .NET 4.5 安装文件夹。这是否意味着我成功使用了 EF 5.0?

  2. 对于现有项目迁移 - 当我从 VS 2010 .NET 4.0 迁移项目并将 .NET 客户端配置文件设置为 4.5 时,System.Data.Entity程序集将升级到 .NET 4.5 安装文件夹中的程序集。我根本看不到EntityFramework.dll。为了让我现有的项目迁移到 EF 5.0 和 .NET 4.5,我需要进行任何更改吗

我在这里错过了什么吗?

4

1 回答 1

0

System.Data.Entity.dll 程序集的版本在 .NET Framework 4 和 .NET Framework 4.5 上是相同的。问题是只能在一台机器上同时安装一个版本,因此即使您在项目中以 .NET Framework 4 为目标,但在具有 .NET Framework 4.5 的机器上运行您的应用程序,您将有效地针对 .NET Framework 运行它4.5(因此是 System.Data.Entity.dll 程序集的 EF5 版本)。关于 EntityFramework.dll - 直到版本 6,它建立在 System.Data.Entity.dll 之上(在 EF6 中,来自 System.Data.Entity.dll 和 EntityFramework.dll 的代码被合并并进一步发展)。如果您在 VS2010 中使用 EntityFramework.dll,则意味着它必须是 EF4 的 4.x 版本之一。即使使用 EF5 版本的 System.Data.Entity,您也可以继续使用它。dll,但您将无法利用 EF5 中引入的新功能(如枚举、空间等)。由于您决定迁移到 .NET Framework 4.5/EF5,您还应该更新 EntityFramework.dll 5.0.0.0。为此,您必须安装 NuGet 扩展(http://docs.nuget.org/docs/start-here/installing-nuget)如果您还没有安装 EntityFramework.dll 使用包管理器控制台(http://www.nuget.org/packages/EntityFramework /5.0.0)。它应该将项目中的 4.x 版本替换为 5.0。

于 2013-08-14T00:35:22.807 回答