Poprzednie wersje programu Entity Framework

Pierwsza wersja programu Entity Framework została wydana w 2008 r. w ramach programu .NET Framework 3.5 z dodatkiem SP1 i Visual Studio 2008 z dodatkiem SP1.

Począwszy od wersji EF4.1, została ona dostarczona jako pakiet NuGet EntityFramework — obecnie jeden z najpopularniejszych pakietów w NuGet.org.

Między wersjami 4.1 i 5.0 pakiet NuGet EntityFramework rozszerzył biblioteki EF dostarczane w ramach programu .NET Framework.

Począwszy od wersji 6, EF stał się projektem open source, a także całkowicie poza pasmem z programu .NET Framework. Oznacza to, że po dodaniu pakietu NuGet EntityFramework w wersji 6 do aplikacji otrzymujesz pełną kopię biblioteki EF, która nie zależy od bitów EF, które są dostarczane w ramach programu .NET Framework. Pomogło to nieco przyspieszyć tempo opracowywania i dostarczania nowych funkcji.

W czerwcu 2016 r. wydaliśmy program EF Core 1.0. Program EF Core jest oparty na nowej bazie kodu i jest zaprojektowany jako bardziej uproszczona i rozszerzalna wersja platformy EF. Obecnie program EF Core jest głównym celem opracowywania zespołu platformy Entity Framework w firmie Microsoft. Oznacza to, że nie ma żadnych nowych głównych funkcji planowanych dla programu EF6. Jednak program EF6 jest nadal utrzymywany jako projekt open source i obsługiwany produkt firmy Microsoft.

Oto lista wcześniejszych wydań, w odwrotnej kolejności chronologicznej, z informacjami na temat nowych funkcji, które zostały wprowadzone w każdej wersji.

Aktualizacja narzędzi EF Tools w programie Visual Studio 2017 15.7

W maju 2018 r. opublikowaliśmy zaktualizowaną wersję narzędzi EF Tools w ramach programu Visual Studio 2017 15.7. Obejmuje to ulepszenia niektórych typowych punktów bólu:

  • Poprawki dotyczące kilku usterek ułatwień dostępu interfejsu użytkownika
  • Obejście regresji wydajności programu SQL Server podczas generowania modeli z istniejących baz danych #4
  • Obsługa aktualizowania modeli dla większych modeli w programie SQL Server #185

Kolejną poprawą w tej nowej wersji narzędzi EF Tools jest zainstalowanie środowiska uruchomieniowego EF 6.2 podczas tworzenia modelu w nowym projekcie. W starszych wersjach programu Visual Studio można użyć środowiska uruchomieniowego EF 6.2 (a także dowolnej wcześniejszej wersji programu EF), instalując odpowiednią wersję pakietu NuGet.

EF 6.2.0

Środowisko uruchomieniowe EF 6.2 zostało wydane w programie NuGet w październiku 2017 r. Dzięki naszym wysiłkom społeczności współautorów open source program EF 6.2 zawiera liczne poprawki błędów i ulepszenia produktów.

Oto krótka lista najważniejszych zmian wpływających na środowisko uruchomieniowe EF 6.2:

  • Skrócenie czasu uruchamiania przez załadowanie gotowych modeli kodu z trwałej pamięci podręcznej #275
  • Interfejs API Fluent do definiowania indeksów #274
  • DbFunctions.Like() w celu włączenia pisania zapytań LINQ, które tłumaczą się na like w języku SQL #241
  • Plik Migrate.exe obsługuje teraz opcję -script #240
  • Program EF6 może teraz pracować z wartościami klucza wygenerowanymi przez sekwencję w programie SQL Server #165
  • Aktualizowanie listy błędów przejściowych dla strategii wykonywania Usługi SQL Azure #83
  • Usterka: Ponawianie prób zapytań lub poleceń SQL kończy się niepowodzeniem z komunikatem "Parametr Sql Jest już zawarty przez inny parametr SqlParameterCollection" #81
  • Usterka: w debugerze #73 jest często limit czasu oceny elementu DbQuery.ToString()

EF 6.1.3

Środowisko uruchomieniowe EF 6.1.3 zostało wydane do pakietu NuGet w październiku 2015 r. Ta wersja zawiera tylko poprawki do wad o wysokim priorytcie i regresji zgłoszonych w wersji 6.1.2. Poprawki obejmują:

  • Zapytanie: Regresja w programie EF 6.1.2: ZASTOSOWANIE ZEWNĘTRZNE wprowadziło i bardziej złożone zapytania dotyczące relacji 1:1 i klauzuli "let"
  • Problem Z TPT z ukrywanie właściwości klasy bazowej w dziedziczonej klasie
  • DbMigration.Sql kończy się niepowodzeniem, gdy wyraz "go" jest zawarty w tekście
  • Tworzenie flagi zgodności dla obsługi spłaszczania UnionAll i Intersect
  • Zapytanie z wieloma funkcjami Zawiera nie działa w wersji 6.1.2 (działającej w wersji 6.1.1)
  • Wyjątek "Wystąpił błąd w składni SQL" po uaktualnieniu z programu EF 6.1.1 do 6.1.2

EF 6.1.2

Środowisko uruchomieniowe EF 6.1.2 zostało wydane w programie NuGet w grudniu 2014 r. Ta wersja dotyczy głównie poprawek błędów. Zaakceptowaliśmy również kilka godnych uwagi zmian ze strony członków społeczności:

  • Parametry pamięci podręcznej zapytań można skonfigurować z pliku app/web.configuration
    <entityFramework>
      <queryCache size='1000' cleaningIntervalInSeconds='-1'/>
    </entityFramework>
    
  • Metody SqlFile i SqlResource w usłudze DbMigration umożliwiają uruchamianie skryptu SQL przechowywanego jako plik lub zasób osadzony.

EF 6.1.1

Środowisko uruchomieniowe EF 6.1.1 zostało wydane w rozwiązaniu NuGet w czerwcu 2014 r. Ta wersja zawiera poprawki problemów napotkanych przez wiele osób. Między innymi:

  • Projektant: Błąd podczas otwierania ef5 edmx z dokładnością dziesiętną w projektancie EF6
  • Domyślna logika wykrywania wystąpienia dla bazy danych LocalDB nie działa z programem SQL Server 2014

EF 6.1.0

Środowisko uruchomieniowe EF 6.1.0 zostało wydane w programie NuGet w marcu 2014 r. Ta pomocnicza aktualizacja obejmuje znaczną liczbę nowych funkcji:

  • Konsolidacja narzędzi zapewnia spójny sposób tworzenia nowego modelu EF. Ta funkcja rozszerza kreatora ADO.NET Entity Data Model w celu obsługi tworzenia modeli Code First, w tym inżynierii odwrotnej z istniejącej bazy danych. Te funkcje były wcześniej dostępne w jakości beta w narzędziach EF Power Tools.
  • Obsługa błędów zatwierdzania transakcji zapewnia commitFailureHandler, który korzysta z nowo wprowadzonej możliwości przechwytywania operacji transakcji. Funkcja CommitFailureHandler umożliwia automatyczne odzyskiwanie po błędach połączenia podczas zatwierdzania transakcji.
  • Atrybut IndexAttribute umożliwia określenie indeksów przez umieszczenie atrybutu [Index] we właściwości (lub właściwości) w modelu Code First. Najpierw kod utworzy odpowiedni indeks w bazie danych.
  • Publiczny interfejs API mapowania zapewnia dostęp do informacji, które ef ma na temat sposobu mapowania właściwości i typów na kolumny i tabele w bazie danych. W poprzednich wersjach ten interfejs API był wewnętrzny.
  • Możliwość konfigurowania przechwytywania za pośrednictwem pliku App/Web.config umożliwia dodawanie przechwytatorów bez ponownego komkompilowania aplikacji.
  • System.Data.Entity.Infrastructure.Interception.DatabaseLoggerto nowy przechwytywanie, które ułatwia rejestrowanie wszystkich operacji bazy danych w pliku. W połączeniu z poprzednią funkcją umożliwia to łatwe przełączanie rejestrowania operacji bazy danych dla wdrożonej aplikacji bez konieczności ponownego kompilowania.
  • Ulepszono wykrywanie zmian modelu migracji, dzięki czemu migracje szkieletowe są dokładniejsze; wydajność procesu wykrywania zmian została również zwiększona.
  • Ulepszenia wydajności, w tym ograniczone operacje bazy danych podczas inicjowania, optymalizacje porównania równości wartości null w zapytaniach LINQ, szybsze generowanie widoku (tworzenie modelu) w większej fazie i wydajniejsze materializacja śledzonych jednostek z wieloma skojarzeniami.

EF 6.0.2

Środowisko uruchomieniowe EF 6.0.2 zostało wydane w programie NuGet w grudniu 2013 r. Ta wersja poprawki jest ograniczona do rozwiązywania problemów, które zostały wprowadzone w wersji EF6 (regresja wydajności/zachowania od EF5).

EF 6.0.1

Środowisko uruchomieniowe EF 6.0.1 zostało wydane w programie NuGet w październiku 2013 r. jednocześnie z programem EF 6.0.0, ponieważ zostało ono osadzone w wersji programu Visual Studio, która zablokowała kilka miesięcy wcześniej. Ta wersja poprawki jest ograniczona do rozwiązywania problemów, które zostały wprowadzone w wersji EF6 (regresja wydajności/zachowania od EF5). Najbardziej istotne zmiany miały na celu rozwiązanie niektórych problemów z wydajnością podczas rozgrzewki dla modeli EF. Było to ważne, ponieważ wydajność rozgrzewki była obszarem zainteresowania w ef6 i te problemy negowały niektóre z innych wzrostów wydajności w EF6.

EF 6.0

Środowisko uruchomieniowe EF 6.0.0 zostało wydane w programie NuGet w październiku 2013 r. Jest to pierwsza wersja, w której kompletne środowisko uruchomieniowe EF jest zawarte w pakiecie NuGet EntityFramework, który nie zależy od bitów EF, które są częścią programu .NET Framework. Przeniesienie pozostałych części środowiska uruchomieniowego do pakietu NuGet wymaga wielu zmian powodujących niezgodność dla istniejącego kodu. Aby uzyskać więcej informacji na temat kroków ręcznych wymaganych do uaktualnienia, zobacz sekcję Uaktualnianie do programu Entity Framework 6 .

Ta wersja zawiera wiele nowych funkcji. Następujące funkcje działają w przypadku modeli utworzonych za pomocą funkcji Code First lub EF Projektant:

  • Asynchroniczne zapytanie i zapisywanie dodaje obsługę wzorców asynchronicznych opartych na zadaniach, które zostały wprowadzone na platformie .NET 4.5.
  • Odporność Połączenie ionów umożliwia automatyczne odzyskiwanie po przejściowych błędach połączenia.
  • Konfiguracja oparta na kodzie umożliwia wykonywanie konfiguracji — tradycyjnie wykonywanej w pliku konfiguracji — w kodzie.
  • Rozwiązanie zależności wprowadza obsługę wzorca lokalizatora usług i uwzględnialiśmy niektóre funkcje, które można zastąpić implementacjami niestandardowymi.
  • Przechwytywanie/rejestrowanie SQL zapewnia bloki konstrukcyjne niskiego poziomu do przechwytywania operacji EF z prostym rejestrowaniem SQL zbudowanym na górze.
  • Ulepszenia możliwości testowania ułatwiają tworzenie podwajań testów dla obiektów DbContext i DbSet podczas korzystania ze struktury pozorowania lub pisania własnych podwajań testów.
  • DbContext można teraz utworzyć za pomocą bazy danych Połączenie ion, która jest już otwarta, co umożliwia scenariusze, w których przydatne byłoby otwarcie połączenia podczas tworzenia kontekstu (na przykład udostępnianie połączenia między składnikami, w których nie można zagwarantować stanu połączenia).
  • Ulepszona obsługa transakcji zapewnia obsługę transakcji spoza platformy, a także ulepszone sposoby tworzenia transakcji w ramach struktury.
  • Wyliczenia, przestrzenna i lepsza wydajność na platformie .NET 4.0 — przenosząc podstawowe składniki, które były używane w programie .NET Framework do pakietu EF NuGet, możemy teraz oferować obsługę wyliczenia, typy danych przestrzennych i ulepszenia wydajności z programu EF5 na platformie .NET 4.0.
  • Zwiększona wydajność funkcji Enumerable.Contains w zapytaniach LINQ.
  • Ulepszony czas rozgrzewania (generowanie widoku), szczególnie w przypadku dużych modeli.
  • Podłączana usługa pluralizacji i liczby pojedynczej.
  • Niestandardowe implementacje funkcji Equals lub GetHashCode w klasach jednostek są teraz obsługiwane.
  • DbSet.AddRange/RemoveRange zapewnia zoptymalizowany sposób dodawania lub usuwania wielu jednostek z zestawu.
  • Funkcja DbChangeTracker.HasChanges zapewnia łatwy i wydajny sposób sprawdzania, czy w bazie danych nie ma żadnych oczekujących zmian.
  • Program SqlCeFunctions zapewnia kompakt SQL Compact odpowiadający funkcji SqlFunctions.

Następujące funkcje dotyczą tylko funkcji Code First:

  • Niestandardowe konwencje Code First umożliwiają pisanie własnych konwencji, aby uniknąć powtarzalnej konfiguracji. Udostępniamy prosty interfejs API dla lekkich konwencji, a także kilka bardziej złożonych bloków konstrukcyjnych, aby umożliwić tworzenie bardziej skomplikowanych konwencji.
  • Obsługiwane jest teraz mapowanie Code First w celu wstawiania/aktualizowania/usuwania procedur składowanych.
  • Skrypty migracji idempotentnych umożliwiają wygenerowanie skryptu SQL, który może uaktualnić bazę danych w dowolnej wersji do najnowszej wersji.
  • Konfigurowalna tabela historii migracji umożliwia dostosowanie definicji tabeli historii migracji. Jest to szczególnie przydatne w przypadku dostawców baz danych, którzy wymagają określenia odpowiednich typów danych itp., aby tabela Historia migracji działała poprawnie.
  • Wiele kontekstów na bazę danych usuwa poprzednie ograniczenie jednego modelu Code First na bazę danych podczas korzystania z migracji lub gdy kod First automatycznie utworzył bazę danych.
  • DbModelBuilder.HasDefaultSchema to nowy interfejs API Code First, który umożliwia skonfigurowanie domyślnego schematu bazy danych dla modelu Code First w jednym miejscu. Wcześniej domyślny schemat Code First był trwale zakodowany na "dbo" i jedynym sposobem skonfigurowania schematu, do którego należy tabela, była za pośrednictwem interfejsu API ToTable.
  • Metoda DbModelBuilder.Configurations.AddFromAssembly umożliwia łatwe dodawanie wszystkich klas konfiguracji zdefiniowanych w zestawie, gdy używasz klas konfiguracji z interfejsem API Code First Fluent.
  • Operacje migracji niestandardowych umożliwiają dodawanie dodatkowych operacji do użycia w migracjach opartych na kodzie.
  • Domyślny poziom izolacji transakcji jest zmieniany na READ_COMMITTED_SNAPSHOT dla baz danych utworzonych przy użyciu funkcji Code First, co pozwala na większą skalowalność i mniejsze zakleszczenia.
  • Typy jednostek i typów złożonych można teraz zagnieżdżać w klasach.

EF 5.0

Środowisko uruchomieniowe EF 5.0.0 zostało wydane w programie NuGet w sierpniu 2012 r. W tej wersji wprowadzono nowe funkcje, w tym obsługę wyliczenia, funkcje wartości tabeli, typy danych przestrzennych i różne ulepszenia wydajności.

Program Entity Framework Projektant w programie Visual Studio 2012 wprowadza również obsługę wielu diagramów na model, kolorowanie kształtów na powierzchni projektowej i importowanie wsadowych procedur składowanych.

Oto lista zawartości, która została zebrana specjalnie dla wersji EF 5:

EF 4.3.1

Środowisko uruchomieniowe EF 4.3.1 zostało wydane w programie NuGet w lutym 2012 r. wkrótce po ef 4.3.0. Ta wersja poprawki zawierała pewne poprawki błędów w wersji EF 4.3 i wprowadzono lepszą obsługę bazy danych LocalDB dla klientów korzystających z programu EF 4.3 w programie Visual Studio 2012.

Poniżej znajduje się lista zawartości, które zebraliśmy specjalnie dla wersji EF 4.3.1, większość zawartości dostarczonej dla ef 4.1 nadal dotyczy ef 4.3, jak również:

EF 4.3

Środowisko uruchomieniowe EF 4.3.0 zostało wydane w programie NuGet w lutym 2012 r. Ta wersja zawierała nową funkcję Migracje Code First, która umożliwia przyrostowe zmianę bazy danych utworzonej przez program Code First w miarę rozwoju modelu Code First.

Poniżej znajduje się lista zawartości, które zebraliśmy specjalnie dla wersji EF 4.3, większość zawartości dostarczonej dla ef 4.1 nadal dotyczy ef 4.3, jak również:

EF 4.2

Środowisko uruchomieniowe EF 4.2.0 zostało wydane w programie NuGet w listopadzie 2011 r. Ta wersja zawiera poprawki błędów w wersji EF 4.1.1. Ponieważ ta wersja zawierała tylko poprawki błędów, mogła to być wersja poprawki EF 4.1.2, ale postanowiliśmy przejść do wersji 4.2, aby umożliwić nam odejście od numerów wersji poprawek opartych na dacie, które użyliśmy w wersjach 4.1.x i przyjąć semantyczne wersje standardu do semantycznego przechowywania wersji.

Poniżej znajduje się lista zawartości, która została zebrana specjalnie dla wersji EF 4.2, a zawartość udostępniona dla platformy EF 4.1 nadal ma zastosowanie do programu EF 4.2, jak również:

EF 4.1.1

Środowisko uruchomieniowe EF 4.1.10715 zostało wydane w programie NuGet w lipcu 2011 roku. Oprócz poprawek usterek ta wersja poprawki wprowadziła niektóre składniki, aby ułatwić projektowanie narzędzi do pracy z modelem Code First. Te składniki są używane przez Migracje Code First (zawarte w programie EF 4.3) i narzędzia EF Power Tools.

Zauważysz, że dziwny numer wersji 4.1.10715 pakietu. Użyliśmy wersji poprawek opartych na dacie, zanim postanowiliśmy wdrożyć semantyczne przechowywanie wersji. Należy traktować tę wersję jako poprawkę EF 4.1 (lub EF 4.1.1).

Oto lista zawartości, która została zebrana dla wersji 4.1.1:

EF 4.1

Środowisko uruchomieniowe EF 4.1.10331 było pierwszym, który został opublikowany w programie NuGet w kwietniu 2011 r. W tej wersji zawarto uproszczony interfejs API DbContext i przepływ pracy Code First.

Zauważysz dziwny numer wersji 4.1.10331, który powinien mieć wartość 4.1. Ponadto istnieje wersja 4.1.10311, która powinna mieć wartość 4.1.0-rc ("rc" oznacza "release candidate"). Użyliśmy wersji poprawek opartych na dacie, zanim postanowiliśmy wdrożyć semantyczne przechowywanie wersji.

Oto lista zawartości, która została zebrana dla wersji 4.1. Wiele z tych elementów nadal ma zastosowanie do nowszych wersji programu Entity Framework:

EF 4.0

Ta wersja została uwzględniona w programach .NET Framework 4 i Visual Studio 2010 w kwietniu 2010 r. Ważne nowe funkcje w tej wersji obejmowały obsługę modelu POCO, mapowanie kluczy obcych, leniwe ładowanie, ulepszenia możliwości testowania, możliwość dostosowywania generowania kodu i przepływ pracy Model First.

Mimo że była to druga wersja programu Entity Framework, została ona nazwana EF 4, aby dopasować ją do wersji programu .NET Framework, z którą została dostarczona. Po tej wersji zaczęliśmy udostępniać program Entity Framework w programie NuGet i uchwaliliśmy semantyczne przechowywanie wersji, ponieważ nie byliśmy już powiązani z wersją programu .NET Framework.

Należy pamiętać, że niektóre kolejne wersje programu .NET Framework zostały dostarczone ze znacznymi aktualizacjami dołączonych bitów EF. W rzeczywistości wiele nowych funkcji ef 5.0 zostało zaimplementowanych jako ulepszenia tych bitów. Jednak w celu racjonalizacji scenariusza przechowywania wersji dla programu EF nadal odwołujemy się do bitów EF, które są częścią programu .NET Framework jako środowiska uruchomieniowego EF 4.0, podczas gdy wszystkie nowsze wersje składają się z pakietu NuGet EntityFramework.

EF 3.5

Początkowa wersja programu Entity Framework została uwzględniona w programie .NET 3.5 z dodatkiem Service Pack 1 i Visual Studio 2008 SP1, wydanym w sierpniu 2008 r. W tej wersji udostępniono podstawową obsługę O/RM przy użyciu przepływu pracy Database First.