Визначте версію 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 будується
Farax

4
Використовуйте Get-Package (див. Іншу відповідь). Це швидше і точніше.
Буде Курран

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
Ну це передбачає, що ви встановили посилання через менеджер пакунків, що не стосується багатьох з нас.
Лоран Джалберт Сімард

2
@LaurentJalbertSimard я цього не робив явно, і все ще з'являється.
Dan

39

може перевірити це у файлі пакети.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.