Which version of Entity Framework is used by my pr

2019-04-26 21:37发布

问题:

I have a project using Entity Framework, but I am not sure which version of EF I am using. According to the Microsoft version history EF5 will install itself:

If you create a new model using the Entity Framework Designer in Visual Studio 2012, the EF5 NuGet package will be installed to your project and the generated code will make use of EF5.

However I did not create the EF-part of the project, but got it from version control (TFS). Now I am not sure how to determine if I have EF5.

If I right-click on the References folder of the project and select Manage NuGet Packages, it show EF5 with an Uninstall-button, implying I have EF5.

But the system.data.entity in the References folder has a Runtime Version v4.0.30319 and Version 4.0.0.0 in the Properties explorer, which would imply EF 4 (according to Determine version of Entity Framework I am using?).

I do have this in my app.config:

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

And this in my 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>

Can anybody clarify this?

回答1:

Maybe your proyect is based in .NET 4.0, in this case you have an EF5 version without .NET 4.5 features:

EntityFramework 5 use dll version 4.4.0.instead 5.0



回答2:

According to this answer to Entity Framework 5 not installing correctly?, one should only look at EntityFramework.dll, which in my case shows Runtime version v4.0.30319 but Version 5.0.0.0. (So I do have EF 5.)



回答3:

Go to packages.config file of your project.

  <package id="EntityFramework" version="6.1.3" targetFramework="net45" />


回答4:

I have the same version number on System.Data.Entity. This comes from the .Net framework, not the Entity Framework installation. You can see which parts of your app are using it by right-clicking the reference and select Find Code Dependent on Module. There's generally not a lot unless the code is accessing metadata, mostly state enums and attribute defn's. Next version will bring all of this into the EntityFramework.dll - see EFv6

BTW, looking at the folder in properties of System.Data.Entity, v4.0.30319 is in .NETFramework\v4.5



回答5:

The easiest way to get this kind of information is to install Microsoft ASP.NET MVC Diagnostics 5.2.3

This just produces a webpage for your project with all the pertinent information. For example, you could just search for "Entity" on that page and see the version information right away.

Here is an article showing one use of this diagnostic tool.