8

我有一个使用实体框架的项目,但我不确定我使用的是哪个版本的 EF。根据Microsoft 版本历史记录, EF5 将自行安装:

如果您使用 Visual Studio 2012 中的实体框架设计器创建新模型,EF5 NuGet 包将安装到您的项目中,并且生成的代码将使用 EF5。

但是我没有创建项目的 EF 部分,而是从版本控制 (TFS) 中获得的。现在我不确定如何确定我是否有 EF5。

如果我右键单击项目的 References 文件夹并选择管理 NuGet 包,它会显示带有卸载按钮的 EF5,这意味着我有 EF5。

但是 References 文件夹中的 system.data.entity 在属性资源管理器中有一个运行时版本 v4.0.30319 和版本 4.0.0.0,这意味着 EF 4(根据确定我正在使用的实体框架的版本?)。

我确实有这个app.config

<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />

这在我的web.config

<configSections>
  <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<!--...-->
  <dependentAssembly>
    <assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
  </dependentAssembly>
<!--...-->
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
  </entityFramework>

任何人都可以澄清这一点吗?

4

5 回答 5

3

也许您的项目基于 .NET 4.0,在这种情况下,您有一个没有 .NET 4.5 功能的 EF5 版本:

EntityFramework 5 使用 dll 版本 4.4.0. 而不是 5.0

于 2013-04-04T16:51:23.850 回答
2

根据这个对Entity Framework 5的回答没有正确安装?,应该只看,在我的例子中显示运行时版本 v4.0.30319 但版本5.0.0.0。(所以我确实有 EF 5。)EntityFramework.dll

于 2013-04-08T07:15:35.947 回答
2

转到项目的 packages.config 文件。

  <package id="EntityFramework" version="6.1.3" targetFramework="net45" />
于 2017-06-01T09:13:09.633 回答
0

我在 System.Data.Entity 上有相同的版本号。这来自 .Net 框架,而不是实体框架安装。您可以通过右键单击引用并选择Find Code Dependent on Module来查看应用程序的哪些部分正在使用它。除非代码访问元数据,主要是状态枚举和属性定义,否则通常不会有很多。下一个版本会将所有这些都带入 EntityFramework.dll - 请参阅EFv6

顺便说一句,查看 System.Data.Entity 属性中的文件夹,v4.0.30319 位于 .NETFramework\v4.5

于 2013-04-04T18:26:40.527 回答
0

获取此类信息的最简单方法是安装Microsoft ASP.NET MVC Diagnostics 5.2.3

这只是为您的项目生成一个包含所有相关信息的网页。例如,您可以在该页面上搜索“实体”并立即查看版本信息。

这是一篇文章,展示了此诊断工具的一种用法。

于 2015-02-18T19:10:35.537 回答