Определить версию 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, но это самый простой способ узнать.

Chriss
источник
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.

RickIsWright
источник
6

если вы используете ядро ​​EF, эта команда ниже может помочь

dotnet ef --version
Намик Гаджиев
источник
1

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

Demodave
источник
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;
    }
Простой парень
источник
1

В обозревателе решений в Project щелкните Dependencies-> NuGet-> Microsoft.NetCore.All->. Здесь появится список всех пакетов Microsoft .NetCore. Искать Microsoft.EntityFrameworkCore (2.0.3) в скобках можно так:

После нахождения пакета

Анзар Нармавала
источник