Minulé verze Entity Frameworku

První verze Entity Framework byla vydána v roce 2008 jako součást rozhraní .NET Framework 3.5 SP1 a Visual Studio 2008 SP1.

Od verze EF4.1 se dodává jako balíček NuGet EntityFramework – aktuálně jeden z nejoblíbenějších balíčků na NuGet.org.

Mezi verzemi 4.1 a 5.0 balíček NuGet EntityFramework rozšířil knihovny EF, které se dodávají jako součást rozhraní .NET Framework.

Od verze 6 se EF stal opensourcovým projektem a také zcela mimo pásmo z rozhraní .NET Framework. To znamená, že když do aplikace přidáte balíček NuGet EntityFramework verze 6, získáte úplnou kopii knihovny EF, která nezávisí na bitech EF, které jsou součástí rozhraní .NET Framework. To pomohlo poněkud urychlit tempo vývoje a doručování nových funkcí.

V červnu 2016 jsme vydali EF Core 1.0. EF Core je založená na novém základu kódu a je navržená jako odlehčí a rozšiřitelnější verze EF. V současné době je EF Core hlavním cílem vývoje pro tým Entity Framework v Microsoftu. To znamená, že pro EF6 nejsou naplánované žádné nové hlavní funkce. EF6 se ale stále udržuje jako opensourcový projekt a podporovaný produkt Microsoftu.

Tady je seznam minulých verzí v obráceném chronologickém pořadí s informacemi o nových funkcích, které byly zavedeny v každé verzi.

Aktualizace nástrojů EF v sadě Visual Studio 2017 15.7

V květnu 2018 jsme vydali aktualizovanou verzi nástrojů EF Jako součást sady Visual Studio 2017 15.7. Obsahuje vylepšení některých běžných bodů bolesti:

  • Opravy několika chyb přístupnosti uživatelského rozhraní
  • Alternativní řešení pro regresi výkonu SQL Serveru při generování modelů z existujících databází č. 4
  • Podpora aktualizace modelů pro větší modely na SQL Serveru č. 185

Dalším vylepšením této nové verze nástrojů EF Je, že při vytváření modelu v novém projektu nainstaluje modul runtime EF 6.2. Ve starších verzích sady Visual Studio je možné pomocí modulu runtime EF 6.2 (i jakékoli předchozí verze EF) nainstalovat odpovídající verzi balíčku NuGet.

EF 6.2.0

Modul runtime EF 6.2 byl vydán na NuGet v říjnu 2017. Díky velké části úsilí naší komunity opensourcových přispěvatelů ef 6.2 obsahuje řadu oprav chyb a vylepšení produktů.

Tady je stručný seznam nejdůležitějších změn ovlivňujících modul runtime EF 6.2:

  • Zkrácení doby spuštění načtením hotových modelů prvního kódu z trvalé mezipaměti č. 275
  • Rozhraní FLUENT API pro definování indexů č. 274
  • DbFunctions.Like() umožňuje psaní dotazů LINQ, které se překládají na LIKE v SQL #241
  • Migrate.exe teď podporuje -script option #240
  • EF6 teď může pracovat s hodnotami klíčů vygenerovanými sekvencí v SQL Serveru č. 165.
  • Aktualizace seznamu přechodných chyb pro strategii spouštění SQL Azure č. 83
  • Chyba: Opakování dotazů nebo příkazů SQL selže s chybou SqlParameter je již obsažen v jiné sqlParameterCollection #81
  • Chyba: V ladicím programu č. 73 často vyprší časový limit vyhodnocení DbQuery.ToString()

EF 6.1.3

Modul runtime EF 6.1.3 byl vydán na NuGet v říjnu 2015. Tato verze obsahuje pouze opravy vad s vysokou prioritou a regrese hlášené ve verzi 6.1.2. Mezi opravy patří:

  • Dotaz: Regrese v EF 6.1.2: VNĚJŠÍ POUŽITÍ zavedeny a složitější dotazy pro relace 1:1 a klauzule let
  • Problém s čipem TPT při skrytí vlastnosti základní třídy v zděděné třídě
  • DbMigration.Sql selže, když je slovo "go" obsaženo v textu
  • Vytvoření příznaku kompatibility pro podporu zploštění UnionAll a Intersect
  • Dotaz s více zahrnutími nefunguje ve verzi 6.1.2 (pracuje ve verzi 6.1.1)
  • Výjimka Chyba v syntaxi SQL po upgradu z EF 6.1.1 na 6.1.2

EF 6.1.2

Modul runtime EF 6.1.2 byl vydán na NuGet v prosinci 2014. Tato verze se většinou týká oprav chyb. Také jsme přijali několik pozoruhodných změn od členů komunity:

  • Parametry mezipaměti dotazů je možné nakonfigurovat ze souboru app/web.configuration.
    <entityFramework>
      <queryCache size='1000' cleaningIntervalInSeconds='-1'/>
    </entityFramework>
    
  • Metody SqlFile a SqlResource v DbMigration umožňují spustit skript SQL uložený jako soubor nebo vložený prostředek.

EF 6.1.1

Modul runtime EF 6.1.1 byl vydán na NuGet v červnu 2014. Tato verze obsahuje opravy problémů, se kterými se setkalo několik lidí. Mimo jiné:

  • Návrhář: Chyba při otevírání EF5 edmx s desetinnou přesností v návrháři EF6
  • Výchozí logika detekce instancí pro LocalDB nefunguje s SQL Serverem 2014

EF 6.1.0

Modul runtime EF 6.1.0 byl vydán na NuGet v březnu 2014. Tato dílčí aktualizace zahrnuje významný počet nových funkcí:

  • Konsolidace nástrojů poskytuje konzistentní způsob, jak vytvořit nový model EF. Tato funkce rozšiřuje průvodce ADO.NET Entity Data Model tak, aby podporoval vytváření modelů Code First, včetně zpětné analýzy z existující databáze. Tyto funkce byly dříve k dispozici v beta kvalitě v nástrojích EF Power Tools.
  • Zpracování selhání potvrzení transakce poskytuje CommitFailureHandler, který využívá nově zavedenou schopnost zachytit transakce operace. CommitFailureHandler umožňuje automatické obnovení z chyb připojení při potvrzení transakce.
  • IndexAttribute umožňuje zadat indexy umístěním atributu [Index] na vlastnost (nebo vlastnosti) do modelu Code First. Code First pak vytvoří odpovídající index v databázi.
  • Veřejné rozhraní API pro mapování poskytuje přístup k informacím EF o tom, jak se vlastnosti a typy mapují na sloupce a tabulky v databázi. V předchozích verzích bylo toto rozhraní API interní.
  • Možnost konfigurovat průsečíky prostřednictvím souboru App/Web.config umožňuje přidání průsečíků bez opětovného zkompilování aplikace.
  • System.Data.Entity.Infrastructure.Interception.DatabaseLoggerje nový průsečík, který usnadňuje protokolování všech databázových operací do souboru. V kombinaci s předchozí funkcí to umožňuje snadno přepínat protokolování databázových operací pro nasazenou aplikaci bez nutnosti rekompilovat.
  • Byla vylepšena detekce změn modelu migrace tak, aby byly vygenerované migrace přesnější. Byl vylepšen také výkon procesu detekce změn.
  • Vylepšení výkonu včetně omezených databázových operací během inicializace, optimalizace porovnání rovnosti null v dotazech LINQ, rychlejší generování zobrazení (vytváření modelů) ve více scénářích a efektivnější materializace sledovaných entit s více přidruženími.

EF 6.0.2

Modul runtime EF 6.0.2 byl vydán pro NuGet v prosinci 2013. Tato verze opravy je omezená na řešení problémů, které byly zavedeny ve verzi EF6 (regrese v výkonu nebo chování od EF5).

EF 6.0.1

Modul runtime EF 6.0.1 byl vydán na NuGet v říjnu 2013 současně s EF 6.0.0, protože druhý modul byl vložen do verze sady Visual Studio, která byla uzamčena několik měsíců před několika měsíci. Tato verze opravy je omezená na řešení problémů, které byly zavedeny ve verzi EF6 (regrese v výkonu nebo chování od EF5). Nejdůležitějšími změnami byly oprava některých problémů s výkonem během zahřátí modelů EF. To bylo důležité, protože výkon pro přípravu byl oblastí zaměření v EF6 a tyto problémy negovaly některé další zvýšení výkonu provedené v EF6.

EF 6.0

Modul runtime EF 6.0.0 byl vydán na NuGet v říjnu 2013. Toto je první verze, ve které je součástí balíčku NuGet EntityFramework kompletní modul runtime EF, který nezávisí na bitech EF, které jsou součástí rozhraní .NET Framework. Přesunutí zbývajících částí modulu runtime do balíčku NuGet vyžadovalo pro existující kód řadu zásadních změn. Další podrobnosti o ručních krocích potřebných k upgradu najdete v části Upgrade na Entity Framework 6 .

Tato verze obsahuje řadu nových funkcí. Následující funkce fungují pro modely vytvořené pomocí Code First nebo EF Designeru:

  • Asynchronní dotaz a uložení přidává podporu asynchronních vzorů založených na úlohách, které byly zavedeny v .NET 4.5.
  • odolnost Připojení umožňuje automatické obnovení z přechodných selhání připojení.
  • Konfigurace založená na kódu poskytuje možnost provádět konfiguraci – která se tradičně prováděla v konfiguračním souboru – v kódu.
  • Řešení závislostí zavádí podporu modelu lokátoru služby a přidali jsme některé části funkcí, které je možné nahradit vlastními implementacemi.
  • Zachycování/protokolování SQL poskytuje základní stavební bloky pro zachycení operací EF s jednoduchým protokolováním SQL postaveným na vrcholu.
  • Vylepšení testovatelnosti usnadňují vytváření dvojitých testů pro DbContext a DbSet při použití napodobování architektury nebo psaní vlastních testovacích doubles.
  • DbContext je teď možné vytvořit pomocí Databáze Připojení ion, který je již otevřen, což umožňuje scénáře, ve kterých by bylo užitečné, pokud by se připojení mohlo otevřít při vytváření kontextu (například sdílení připojení mezi komponentami, kde nemůžete zaručit stav připojení).
  • Vylepšená podpora transakcí poskytuje podporu pro transakci mimo architekturu a také vylepšené způsoby vytvoření transakce v rámci rozhraní.
  • Výčty, Prostorové a lepší výkon v .NET 4.0 – přesunutím základních komponent, které se používaly v rozhraní .NET Framework, do balíčku EF NuGet, jsme nyní schopni nabídnout podporu výčtu, prostorové datové typy a vylepšení výkonu EF5 v .NET 4.0.
  • Vylepšený výkon enumerable.Contains v dotazech LINQ.
  • Vylepšili jsme dobu zahřátí (generování zobrazení), zejména pro velké modely.
  • Pluggable Pluralization & Singularization Service.
  • Vlastní implementace Equals nebo GetHashCode u tříd entit jsou nyní podporovány.
  • DbSet.AddRange/RemoveRange poskytuje optimalizovaný způsob přidání nebo odebrání více entit ze sady.
  • DbChangeTracker.HasChanges poskytuje snadný a efektivní způsob, jak zjistit, jestli se do databáze uloží nějaké čekající změny.
  • SqlCeFunctions poskytuje sql Compact ekvivalent sqlFunctions.

Následující funkce platí jenom pro Code First:

  • Vlastní konvence Code First umožňují psát vlastní konvence, které vám pomůžou vyhnout se opakované konfiguraci. Poskytujeme jednoduché rozhraní API pro zjednodušené konvence a také několik složitějších stavebních bloků, které vám umožní vytvářet složitější konvence.
  • Nyní je podporováno mapování kódu na vložení, aktualizaci nebo odstranění uložených procedur .
  • Skripty idempotentní migrace umožňují vygenerovat skript SQL, který může upgradovat databázi v libovolné verzi až na nejnovější verzi.
  • Konfigurovatelná tabulka historie migrací umožňuje přizpůsobit definici tabulky historie migrací. To je zvlášť užitečné pro zprostředkovatele databáze, kteří vyžadují vhodné datové typy atd. pro správné fungování tabulky Historie migrací.
  • Více kontextů na databázi odebere předchozí omezení jednoho modelu Code First na databázi při použití migrací nebo při automatickém vytvoření databáze code First.
  • DbModelBuilder.HasDefaultSchema je nové rozhraní API Code First, které umožňuje konfigurovat výchozí schéma databáze pro model Code First na jednom místě. Dříve bylo výchozí schéma Code First pevně zakódované na dbo a jediný způsob, jak nakonfigurovat schéma, do kterého tabulka patří, bylo prostřednictvím rozhraní TOTable API.
  • Metoda DbModelBuilder.Configurations.AddFromAssembly umožňuje snadno přidat všechny třídy konfigurace definované v sestavení při použití tříd konfigurace s rozhraním API Code First Fluent.
  • Operace vlastních migrací umožňují přidávat další operace, které se mají použít v migracích založených na kódu.
  • Výchozí úroveň izolace transakcí se změní na READ_COMMITTED_SNAPSHOT pro databáze vytvořené pomocí Code First, což umožňuje větší škálovatelnost a méně zablokování.
  • Entity a komplexní typy teď mohou být vnořené třídy.

EF 5.0

Modul runtime EF 5.0.0 byl vydán pro NuGet v srpnu 2012. Tato verze přináší některé nové funkce, včetně podpory výčtu, funkcí s hodnotami tabulek, prostorových datových typů a různých vylepšení výkonu.

Návrhář Entity Framework v sadě Visual Studio 2012 také zavádí podporu více diagramů na model, obarvení obrazců na návrhové ploše a dávkovém importu uložených procedur.

Tady je seznam obsahu, který jsme sestavili speciálně pro verzi EF 5:

EF 4.3.1

Modul runtime EF 4.3.1 byl vydán v únoru 2012 krátce po EF 4.3.0. Tato verze oprav obsahovala některé opravy chyb verze EF 4.3 a zavedly lepší podporu LocalDB pro zákazníky používající EF 4.3 se sadou Visual Studio 2012.

Tady je seznam obsahu, který jsme sestavili speciálně pro verzi EF 4.3.1, většina obsahu poskytovaného pro EF 4.1 platí i pro EF 4.3:

EF 4.3

Modul runtime EF 4.3.0 byl vydán na NuGet v únoru 2012. Tato verze obsahovala novou funkci Migrace Code First, která umožňuje přírůstkové změně databáze vytvořené code First při vývoji modelu Code First.

Tady je seznam obsahu, který jsme sestavili speciálně pro verzi EF 4.3, většina obsahu poskytovaného pro EF 4.1 platí i pro EF 4.3:

EF 4.2

Modul runtime EF 4.2.0 byl vydán na NuGet v listopadu 2011. Tato verze obsahuje opravy chyb ve verzi EF 4.1.1. Vzhledem k tomu, že tato verze obsahovala pouze opravy chyb, mohly to být verze opravy EF 4.1.2, ale rozhodli jsme se přejít na verzi 4.2, abychom mohli přejít od čísel verzí oprav založených na datu, která jsme použili ve verzích 4.1.x, a přijmout standard sémantických verzí pro sémantickou správu verzí.

Tady je seznam obsahu, který jsme sestavili speciálně pro verzi EF 4.2, obsah poskytovaný pro EF 4.1 platí i pro EF 4.2:

EF 4.1.1

Modul runtime EF 4.1.10715 byl vydán na NuGet v červenci 2011. Kromě oprav chyb tato verze oprav zavedla některé komponenty, které usnadňují práci s modelem Code First v době návrhu. Tyto komponenty používají Migrace Code First (součástí EF 4.3) a EF Power Tools.

Všimněte si, že podivné číslo verze 4.1.10715 balíčku. Dříve, než jsme se rozhodli přijmout sémantickou správu verzí, jsme použili verze oprav založené na datech. Tuto verzi si můžete představit jako verzi EF 4.1 patch 1 (nebo EF 4.1.1).

Tady je seznam obsahu, který jsme dali dohromady pro vydání verze 4.1.1:

EF 4.1

Modul runtime EF 4.1.10331 byl prvním, který se má publikovat na NuGetu v dubnu 2011. Tato verze zahrnovala zjednodušené rozhraní DBContext API a pracovní postup Code First.

Všimnete si podivného čísla verze 4.1.10331, která by měla být opravdu 4.1. Kromě toho existuje verze 4.1.10311, která by měla být 4.1.0-rc (rc je zkratka pro release candidate). Dříve, než jsme se rozhodli přijmout sémantickou správu verzí, jsme použili verze oprav založené na datech.

Tady je seznam obsahu, který jsme dali dohromady pro vydání verze 4.1. Většina z toho se stále vztahuje na pozdější verze Entity Frameworku:

EF 4.0

Tato verze byla součástí rozhraní .NET Framework 4 a Visual Studio 2010 v dubnu 2010. Mezi důležité nové funkce v této verzi patří podpora POCO, mapování cizích klíčů, opožděné načítání, vylepšení testovatelnosti, přizpůsobitelné generování kódu a pracovní postup Model First.

I když se jednalo o druhou verzi Entity Frameworku, měla název EF 4, aby odpovídala verzi rozhraní .NET Framework, se kterou byla dodávána. Po této verzi jsme začali zpřístupňovat Entity Framework na NuGetu a přijali sémantickou správu verzí, protože jsme už nebyli svázaní s verzí rozhraní .NET Framework.

Všimněte si, že některé další verze rozhraní .NET Framework byly dodávány s významnými aktualizacemi zahrnutých bitů EF. Ve skutečnosti byla řada nových funkcí EF 5.0 implementována jako vylepšení těchto bitů. Kvůli racionalizaci scénáře správy verzí pro EF však nadále odkazujeme na bity EF, které jsou součástí rozhraní .NET Framework jako modulu runtime EF 4.0, zatímco všechny novější verze se skládají z balíčku NuGet EntityFramework.

EF 3.5

Počáteční verze Entity Frameworku byla součástí aktualizace Service Pack 1 pro .NET 3.5 a sady Visual Studio 2008 SP1 vydané v srpnu 2008. Tato verze poskytla základní podporu O/RM pomocí pracovního postupu Database First.