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" />

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.


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ć.


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> 


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.



1

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


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

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


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.