我有一个使用Entity Framework的项目,但我不确定我使用的是哪个版本的EF。 根据{{3}} EF5将自行安装:
如果使用Visual Studio 2012中的Entity Framework Designer创建新模型,EF5 NuGet包将安装到您的项目中,生成的代码将使用EF5。
但是我没有创建项目的EF部分,而是从版本控制(TFS)获得它。现在我不知道如何确定我是否有EF5。
如果我右键单击项目的References文件夹并选择Manage NuGet Packages,它会显示带有卸载按钮的EF5,这意味着我有EF5。
但是References文件夹中的system.data.entity在Properties Explorer中有一个Runtime Version v4.0.30319和Version 4.0.0.0,这意味着EF 4(根据Microsoft version history)。
我在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>
有人可以澄清这个吗?
答案 0 :(得分:3)
也许您的项目基于.NET 4.0,在这种情况下,您有一个没有.NET 4.5功能的EF5版本:
答案 1 :(得分:2)
根据this answer到Entity Framework 5 not installing correctly?,我们应该只看EntityFramework.dll
,在我的例子中显示运行时版 v4.0.30319但版本 5.0.0.0。 (所以我确实有EF 5。)
答案 2 :(得分:2)
转到项目的packages.config文件。
<package id="EntityFramework" version="6.1.3" targetFramework="net45" />
答案 3 :(得分:0)
我在System.Data.Entity上有相同的版本号。这来自.Net框架,而不是Entity Framework安装。您可以通过右键单击参考并选择查找依赖于模块的代码来查看应用的哪些部分正在使用它。除非代码访问元数据,否则通常不会有很多,主要是状态枚举和属性定义。下一个版本将把所有这些带入EntityFramework.dll - 请参阅EFv6
BTW,查看System.Data.Entity属性中的文件夹,v4.0.30319在.NETFramework \ v4.5中
答案 4 :(得分:0)
获取此类信息的最简单方法是安装Microsoft ASP.NET MVC Diagnostics 5.2.3
这只会为您的项目生成一个包含所有相关信息的网页。例如,您可以在该页面上搜索“实体”并立即查看版本信息。
以下是显示此诊断工具的一个article。