Определить версию Entity Framework, которую я использую?


131

Я считаю, что есть две версии 1 и 2? А версия 2 называется Entity Framework 4.0?

Как узнать, какая версия используется в приложении?

Это в моем файле web.config. Означает ли это, что я использую версию 2?

<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />

Ответы:


83

Существует две версии: 1 и 4. EFv4 является частью .net 4.0, а EFv1 - частью .net 3.5 SP1.

Да, указанный выше параметр конфигурации указывает на EFv4 / .net 4.0.

ИЗМЕНИТЬ Если вы откроете папку ссылок и найдете system.data.entity, щелкните элемент, затем проверьте номер версии среды выполнения в проводнике свойств, вы также увидите подверсию. Моя, например, показывает версию v4.0.30319 во время выполнения со свойством Version, показывающим 4.0.0.0. Их также EntityFramework.dllможно просмотреть таким же образом. Только версия будет 4.1.0.0, а версия среды выполнения будет v4.0.30319, что указывает на то, что это компонент .NET 4. В качестве альтернативы вы можете открыть расположение файла, указанное в свойстве Path, и щелкнуть правой кнопкой мыши соответствующий компонент, выбрать свойства, затем выбрать вкладку сведений и просмотреть версию продукта.


2
Да, но есть разные версии 4.0.
MikeKulls

Смотрите мой ответ ниже для истории версий Microsoft.
Марсель

1
Сейчас существует три версии, и EFV5 связан с .NET 4.5, и на данный момент EFv6 находится в стадии разработки
Фаракс

4
Используйте Get-Package (см. Другой ответ). Это быстрее и точнее.
Will Curran

157

Другой способ получить используемую версию EF - открыть консоль диспетчера пакетов (PMC) в Visual Studio и ввести в командной строке Get-Package. Первая строка для EntityFramework и перечисляет версию, установленную проектом.

PM> Get-Package

Id                             Version              Description/Release Notes                                                                                                                                                                                          
--                             -------              -------------------------                                                                                                                                                                                          
EntityFramework                5.0.0                Entity Framework is Microsoft's recommended data access technology for new applications.                                                                                                                           
jQuery                         1.7.1.1              jQuery is a new kind of JavaScript Library....                                           `enter code here`

Он отображает гораздо больше, и вам, возможно, придется прокрутить назад, чтобы найти строку EF, но это самый простой способ узнать.


15
Это предполагает, что вы установили ссылку через диспетчер пакетов, что не подходит для многих из нас.
Laurent Jalbert Simard

2
@LaurentJalbertSimard Я не делал этого явно, и он все еще появляется.
Дэн

39

можете проверить это в файле packages.config.

<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="EntityFramework" version="6.0.2" targetFramework="net40-Client" />
</packages> 


11

Если вы откроете папку ссылок и найдете system.data.entity, щелкните элемент, затем проверьте номер версии среды выполнения в проводнике свойств, вы также увидите подверсию. Мой, например, показывает v4.0.30319 со свойством Version, показывающим 4.0.0.0.



1

Если вы перейдете к ссылкам, щелкните Entity Framework, просмотрите свойства. Он сообщит вам номер версии.


1
   internal static string GetEntityFrameworkVersion()
    {
        var version = "";
        var assemblies = System.AppDomain.CurrentDomain.GetAssemblies().Select(x => x.FullName).ToList();
        foreach(var asm in assemblies)
        {
            var fragments = asm.Split(new char[] { ',', '{', '}' }, StringSplitOptions.RemoveEmptyEntries).Select(x=> x.Trim()).ToList();
            if(string.Compare(fragments[0], EntityFramework, true)==0)
            {
                var subfragments = fragments[1].Split(new char[] { '='}, StringSplitOptions.RemoveEmptyEntries);
                version =subfragments[1];
                break;
            }
        }
        return version;
    }

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.