Какая версия Entity Framework используется моим проектом?

у меня есть проект с использованием Entity Framework, но я не уверен, какую версию EF я использую. Согласно история версий Microsoft EF5 установит себя:

если создать новую модель с помощью конструктора Entity Framework в Visual Studio 2012, пакет EF5 NuGet будет установлен в проект и созданный код будет использовать EF5.

однако я не создал EF-часть проекта, но получил его от управление версиями (TFS). Теперь я не уверен, как определить, есть ли у меня EF5.

если я щелкните правой кнопкой мыши на папке References проекта и выберите Управление пакетами NuGet, он покажет EF5 с помощью кнопки удаления, подразумевая, что у меня есть EF5.

но система.данные.сущность в папке References имеет версию среды выполнения v4.0.30319 и версия 4.0.0.0 в проводнике свойств, что означало бы EF 4 (согласно определить версию Entity Framework I используя?).

у меня есть это в моем 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>

может кто-нибудь прояснить это?

5 ответов


возможно, ваш proyect основан на .NET 4.0, в этом случае у вас есть версия EF5 без функций .NET 4.5:

EntityFramework 5 Используйте dll версии 4.4.0.вместо 5.0


по данным ответ to Entity Framework 5 не устанавливается правильно? стоит только посмотреть EntityFramework.dll, который в моем случае показывает runtime версии В4.0.30319 но версия 5.0.0.0. (Итак, у меня есть EF 5.)


перейдите к пакетам.конфигурационный файл вашего проекта.

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

У меня тот же номер версии в системе.Данные.Сущность. Это происходит из .Net framework, а не установки Entity Framework. Вы можете увидеть, какие части вашего приложения используют его, щелкнув правой кнопкой мыши ссылку и выбрав найти код, зависящий от модуля. Обычно не так много, если код не обращается к метаданным, в основном перечислениям состояний и атрибутам defn. Следующая версия принесет все это в EntityFramework.dll-см. EFv6

BTW, глядя на папку в свойствах системы.Данные.Лица, В4.0.30319 в .NETFramework\v4.5


самый простой способ получить такую информацию-это установка Microsoft ASP.NET Диагностика MVC 5.2.3

Это просто создает веб-страницу для вашего проекта со всей соответствующей информацией. Например, вы можете просто найти "Entity" на этой странице и сразу просмотреть информацию о версии.

здесь статьи показ одной пользы этого диагностического инструмента.