Określ wersję Entity Framework, której używam?

133

Uważam, że istnieją dwie wersje 1 i 2? A wersja 2 jest nazywana Entity Framework 4.0?

Jak mogę sprawdzić, która wersja jest używana w aplikacji?

To jest w moim pliku web.config. Czy to oznacza, że ​​używam wersji 2?

<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
Beth
źródło

Odpowiedzi:

83

Istnieją dwie wersje: 1 i 4. EFv4 jest częścią .net 4.0, a EFv1 jest częścią .net 3.5 SP1.

Tak, powyższe ustawienia konfiguracyjne wskazują na EFv4 / .net 4.0.

EDYCJA Jeśli otworzysz folder odniesień i zlokalizujesz system.data.entity, kliknij element, a następnie sprawdź numer wersji środowiska wykonawczego w eksploratorze Właściwości, zobaczysz również wersję podrzędną. Na przykład mój pokazuje wersję środowiska wykonawczego v4.0.30319 z właściwością Version pokazującą 4.0.0.0. EntityFramework.dllMożna oglądać w ten sposób również. Jedyną wersją będzie 4.1.0.0, a wersją Runtime v4.0.30319, co określa, że ​​jest to składnik .NET 4. Alternatywnie możesz otworzyć lokalizację pliku wymienioną we właściwości Ścieżka i kliknąć prawym przyciskiem myszy odpowiedni komponent, wybrać właściwości, a następnie wybrać kartę szczegółów i wyświetlić wersję produktu.

KristoferA
źródło
2
Tak, ale są różne wersje 4.0.
MikeKulls
Zobacz moją odpowiedź poniżej, aby zapoznać się z historią wersji firmy Microsoft.
Marcel
1
Teraz są trzy wersje, a EFV5 jest powiązany z .NET 4.5, a obecnie EFv6 jest w budowie
Farax
4
Użyj Get-Package (zobacz inną odpowiedź). Jest szybszy i dokładniejszy.
Will Curran
159

Innym sposobem uzyskania używanej wersji EF jest otwarcie konsoli Menedżera pakietów (PMC) w programie Visual Studio i wpisanie polecenia Get-Package po wyświetleniu monitu. Pierwsza linia z be for EntityFramework i lista wersji zainstalowanej w projekcie.

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`

Wyświetla znacznie więcej i być może będziesz musiał przewinąć wstecz, aby znaleźć wiersz EF, ale jest to najłatwiejszy sposób, jaki znam, aby się tego dowiedzieć.

ChrisS
źródło
15
Zakłada się, że zainstalowałeś odniesienie za pośrednictwem menedżera pakietów, co nie ma miejsca w przypadku wielu z nas.
Laurent Jalbert Simard
2
@LaurentJalbertSimard Nie zrobiłem tego wyraźnie i nadal się pojawia.
Dan,
40

można to sprawdzić w pliku packages.config.

<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="EntityFramework" version="6.0.2" targetFramework="net40-Client" />
</packages> 
Manoj Weerasooriya
źródło
11

Jeśli otworzysz folder odniesień i zlokalizujesz system.data.entity, kliknij element, a następnie sprawdź numer wersji środowiska wykonawczego w eksploratorze właściwości, zobaczysz również wersję podrzędną. Na przykład mój pokazuje wersję 4.0.30319 z właściwością Version 4.0.0.0.

RickIsWright
źródło
7

jeśli używasz rdzenia EF, poniższe polecenie może pomóc

dotnet ef --version
Namik Hajiyev
źródło
1

Jeśli przejdziesz do odniesień, kliknij Entity Framework, wyświetl właściwości. Poda numer wersji.

Demodave
źródło
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;
    }
Simple Fellow
źródło
1

W Eksploratorze rozwiązań w ramach projektu kliknij na Zależności-> NuGet-> Microsoft.NetCore.All-> Tutaj pojawi się lista wszystkich pakietów Microsoft .NetCore. Szukaj Microsoft.EntityFrameworkCore (2.0.3) w wersji nawiasowej można zobaczyć w ten sposób

Po znalezieniu paczki

Anzar Narmawala
źródło
0

W przypadku platformy .NET Core poznam wersję EntityFramework, której używam. Załóżmy, że nazwa mojego projektu to DemoApi, do dyspozycji mam:

  1. Otworzę plik DemoApi.csproj i przyjrzę się odwołaniu do pakietu, a tam zobaczę wersję EntityFramework, której używam.
  2. Otwórz Command Prompt, Powershell lub Terminal, w zależności od przypadku, zmień katalog na DemoApi, a następnie wprowadź to polecenie: 👉🏻 dotnet list DemoApi.csproj package
Emmy Steven
źródło