我的项目中安装了哪个版本的 Entity Framework?

Which version of Entity Framework is installed in my project?

我刚刚使用 Nuget 在我的项目中安装了 Entity Framework 4.3.1。 当我查看参考资料时,他们说 System.Data.Entity 是版本 4.0.0。运行时版本为 v4.0.30319.

  1. 对于 EF 版本 4.3.1 这是否正确?我以为它会说 4.3.1..?

    另外,当我检查引用的 dll 的目录时(在 C:\Program Files..\.NETFramework\v4.0\System.Data.Entity.dll 中),文件的日期是 18/03/2010

    根据维基百科:

    The version 4.3.1 was released on February 29, 2012

  2. 这不应该意味着文件的日期应该更接近 2012 年吗?

    当我使用Nuget时Get-Package它说安装的版本是4.3.1,但我不想在其他项目上使用Nuget安装EF 4.3.1

  3. Entity Framework 4.3.1 dll 在哪里,所以我可以在其他项目中添加对它的引用?

谢谢。

当你在项目中安装Entity Framework时,如:

Install-Package EntityFramework -Version 4.3.1

你最终会得到一个 EntityFramework.dll 文件,如果你打开它的属性,它将具有安装命令中指定的确切版本:

并且,如果您双击项目中的引用,您将看到相同的内容:

不要System.Data.dll 混淆,后者是 .NET Framework 的 data layer,您可以在其中找到许多 类 来处理数据,例如 ADO.NET 的 DataRowDataTable 部分...


来自评论:

After I install 4.3.1, how do I migrate my project to use the new version?

第一个版本和 4.x 之间有很大的不同,您将需要更改代码,但这是您需要做的:

EF 的第 1 版 was included in .NET Framework 3.5 SP1, and was called "ADO.NET Entity Framework" (now it's only Entity Framework) 因此没有单独的 dll 文件。

  1. 从 nuget 安装 EF 4.3.1
  2. 将项目中所有使用数据的引用更改为使用 System.Data 以使用 EntityFramework
  3. 查看发生了什么并更改编译时出现问题的每一行

对于你的情况,我会做的更通用:

  1. 我将创建一个新的库项目并在其中安装 EF
  2. 然后我将使用 EF 和数据库模式的当前备份创建一个存储库
  3. 我还会创建一个测试项目并围绕该项目放置一些测试,例如调用添加和更新某些东西
  4. 一切正常后,我将替换所有原始数据调用以使用新存储库(使用 EF 4)并测试整个项目...

根据您的项目展开参考部分并检查属性应该显示 entity framework 的版本。