Определить версию 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.