Dela via


Tidigare versioner av Entity Framework

Den första versionen av Entity Framework släpptes 2008 som en del av .NET Framework 3.5 SP1 och Visual Studio 2008 SP1.

Från och med EF4.1-versionen har den levererats som EntityFramework NuGet-paketet – för närvarande ett av de mest populära paketen på NuGet.org.

Mellan versionerna 4.1 och 5.0 utökade EntityFramework NuGet-paketet DE EF-bibliotek som levererades som en del av .NET Framework.

Från och med version 6 blev EF ett projekt med öppen källkod och flyttades också helt ur bandet från .NET Framework. Det innebär att när du lägger till EntityFramework version 6 NuGet-paketet i ett program får du en fullständig kopia av EF-biblioteket som inte är beroende av DE EF-bitar som levereras som en del av .NET Framework. Detta bidrog något till att påskynda utvecklingstakten och leveransen av nya funktioner.

I juni 2016 släppte vi EF Core 1.0. EF Core bygger på en ny kodbas och är utformad som en enklare och utökningsbar version av EF. För närvarande är EF Core huvudfokus för utveckling för Entity Framework-teamet på Microsoft. Det innebär att inga nya huvudfunktioner planeras för EF6. EF6 underhålls dock fortfarande som ett projekt med öppen källkod och en Microsoft-produkt som stöds.

Här är listan över tidigare versioner, i omvänd kronologisk ordning, med information om de nya funktionerna som introducerades i varje version.

Uppdatering av EF-verktyg i Visual Studio 2017 15.7

I maj 2018 släppte vi en uppdaterad version av EF Tools som en del av Visual Studio 2017 15.7. Den innehåller förbättringar för några vanliga smärtpunkter:

  • Korrigeringar för flera tillgänglighetsfel i användargränssnittet
  • Lösning för SQL Server-prestandaregression vid generering av modeller från befintliga databaser #4
  • Stöd för uppdatering av modeller för större modeller på SQL Server #185

En annan förbättring i den här nya versionen av EF Tools är att den installerar EF 6.2-körningen när du skapar en modell i ett nytt projekt. Med äldre versioner av Visual Studio är det möjligt att använda EF 6.2-körningen (samt alla tidigare versioner av EF) genom att installera motsvarande version av NuGet-paketet.

EF 6.2.0

EF 6.2-runtime släpptes till NuGet i oktober 2017. Tack vare vårt community med deltagare med öppen källkod innehåller EF 6.2 många buggkorrigeringar och produktförbättringar.

Här är en kort lista över de viktigaste ändringarna som påverkar EF 6.2 runtime-miljön.

  • Minska starttiden genom att läsa in färdiga kodmodeller från en beständig cache #275
  • Fluent API för att definiera index #274
  • DbFunctions.Like() för att aktivera skrivning av LINQ-frågor som översätts till LIKE i SQL #241
  • Migrate.exe stöder nu -script alternativ 240
  • EF6 kan nu fungera med nyckelvärden som genereras av en sekvens i SQL Server #165
  • Uppdatera lista över tillfälliga fel för SQL Azure Execution Strategy #83
  • Fel: Försök att återköra frågor eller SQL-kommandon misslyckas med "SqlParametern finns redan i en annan SqlParameterCollection" #81
  • Bugg: Utvärdering av DbQuery.ToString() överskrider ofta tidsgränsen i felsökningsprogrammet #73

EF 6.1.3

Runtime-miljön EF 6.1.3 släpptes till NuGet i oktober 2015. Den här versionen innehåller endast korrigeringar av högprioriterad defekter och regressioner som rapporterats i 6.1.2-versionen. Korrigeringarna omfattar:

  • Fråga: Regression i EF 6.1.2: OUTER APPLY har introducerats och resulterat i mer komplexa frågeställningar för 1:1-relationer och "let"-sats
  • TPT-problem med att gömma basklassens egenskap i en ärvd klass
  • DbMigration.Sql misslyckas när ordet "go" finns i texten
  • Skapa kompatibilitetsflagga för stöd för utplattade UnionAll- och Intersect-objekt
  • Frågan med flera inkluderingar fungerar inte i 6.1.2 (fungerar i 6.1.1)
  • Undantaget "Du har ett fel i SQL-syntaxen" efter uppgradering från EF 6.1.1 till 6.1.2

EF 6.1.2

EF 6.1.2-körtiden släpptes till NuGet i december 2014. Den här versionen handlar mest om felkorrigeringar. Vi accepterade också några anmärkningsvärda ändringar från medlemmar i communityn:

  • Frågecacheparametrar kan konfigureras från filen app/web.configuration
    <entityFramework>
      <queryCache size='1000' cleaningIntervalInSeconds='-1'/>
    </entityFramework>
    
  • Med SqlFile- och SqlResource-metoder i DbMigration kan du köra ett SQL-skript som lagras som en fil eller inbäddad resurs.

EF 6.1.1

EF 6.1.1 runtime-miljön släpptes på NuGet i juni 2014. Den här versionen innehåller korrigeringar för problem som ett antal personer har stött på. Bland annat:

  • Designer: Det gick inte att öppna EF5 edmx med decimalprecision i EF6 Designer
  • Standardinstansidentifieringslogik för LocalDB fungerar inte med SQL Server 2014

EF 6.1.0

EF 6.1.0-versionen släpptes till NuGet i mars 2014. Den här mindre uppdateringen innehåller ett stort antal nya funktioner:

  • Verktygskonsolidering är ett konsekvent sätt att skapa en ny EF-modell. Den här funktionen utökar guiden ADO.NET Entitetsdatamodell så att du kan skapa Code First-modeller, inklusive omvänd teknik från en befintlig databas. Dessa funktioner var tidigare tillgängliga i betakvalitet i EF Power Tools.
  • Hantering av transaktionskommitteringsfel tillhandahåller CommitFailureHandler som använder den nyligen introducerade möjligheten att avlyssna transaktionsåtgärder. CommitFailureHandler tillåter automatisk återställning från anslutningsfel när en transaktion genomförs.
  • IndexAttribute gör det möjligt att ange index genom att placera ett [Index] attribut på en egenskap (eller egenskaper) i din Code First-modell. Kod först skapar sedan ett motsvarande index i databasen.
  • API:et för offentlig mappning ger åtkomst till den information SOM EF har om hur egenskaper och typer mappas till kolumner och tabeller i databasen. I tidigare versioner var det här API:et internt.
  • Möjligheten att konfigurera interceptorer via filen App/Web.config gör att interceptorer kan läggas till utan att programmet kompileras om.
  • System.Data.Entity.Infrastructure.Interception.DatabaseLoggerär en ny interceptor som gör det enkelt att logga alla databasåtgärder till en fil. I kombination med den tidigare funktionen kan du enkelt växla till loggning av databasåtgärder för ett distribuerat program, utan att behöva kompilera om.
  • Identifiering av ändringar i migreringsmodellen har förbättrats så att autogenererade migreringar är mer exakta. prestanda för ändringsidentifieringsprocessen har också förbättrats.
  • Prestandaförbättringar , inklusive minskade databasåtgärder under initieringen, optimering för jämförelse av null-likhet i LINQ-frågor, snabbare visningsgenerering (modellskapande) i fler scenarier och effektivare materialisering av spårade entiteter med flera associationer.

EF 6.0.2

EF 6.0.2 runtime-miljön släpptes till NuGet i december 2013. Den här korrigeringsversionen är begränsad till att åtgärda problem som introducerades i EF6-versionen (regressioner i prestanda/beteende sedan EF5).

EF 6.0.1

EF 6.0.1-körningen släpptes till NuGet i oktober 2013 samtidigt med EF 6.0.0, eftersom den senare var inbäddad i en version av Visual Studio som hade låsts några månader tidigare. Den här korrigeringsversionen är begränsad till att åtgärda problem som introducerades i EF6-versionen (regressioner i prestanda/beteende sedan EF5). De mest anmärkningsvärda ändringarna var att åtgärda vissa prestandaproblem vid uppvärmning av EF-modeller. Detta var viktigt eftersom uppvärmningsprestanda var ett fokusområde i EF6 och dessa problem negerade några av de andra prestandavinster som gjorts i EF6.

EF 6.0

EF-6.0.0-körtiden släpptes på NuGet i oktober 2013. Det här är den första versionen där en fullständig EF-runtime ingår i EntityFramework NuGet-paketet som inte är beroende av de EF-bitar som ingår i .NET Framework. För att flytta de återstående delarna av runtime-miljön till NuGet-paketet krävdes flera bakåtkompatibilitetsbrytande ändringar för befintlig kod. Mer information om de manuella steg som krävs för uppgradering finns i avsnittet Uppgradera till Entity Framework 6 .

Den här versionen innehåller många nya funktioner. Följande funktioner fungerar för modeller som skapats med Code First eller EF Designer:

  • Async Query och Save lägger till stöd för de aktivitetsbaserade asynkrona mönster som introducerades i .NET 4.5.
  • Anslutningsåterhämtning möjliggör automatisk återställning från tillfälliga anslutningsfel.
  • Code-Based Konfiguration ger dig möjlighet att utföra konfiguration – som traditionellt utfördes i en konfigurationsfil – i kod.
  • Beroendematchning introducerar stöd för Service Locator-mönstret och vi har tagit fram några funktioner som kan ersättas med anpassade implementeringar.
  • Avlyssning/SQL-loggning ger byggstenar på låg nivå för avlyssning av EF-åtgärder med enkel SQL-loggning byggd ovanpå.
  • Förbättringar av testbarheten gör det enklare att skapa testdubblar för DbContext och DbSet när du använder ett modelleringsramverk eller skriver dina egna testdubblar.
  • DbContext kan nu skapas med en DbConnection som redan är öppen , vilket möjliggör scenarier där det skulle vara användbart om anslutningen kunde vara öppen när kontexten skapas (till exempel att dela en anslutning mellan komponenter där du inte kan garantera anslutningens tillstånd).
  • Förbättrad transaktionssupport ger stöd för en transaktion utanför ramverket samt förbättrade sätt att skapa en transaktion inom ramverket.
  • Uppräkningar, rumsliga och bättre prestanda på .NET 4.0 – Genom att flytta kärnkomponenterna som tidigare var i .NET Framework till EF NuGet-paketet kan vi nu erbjuda uppräkningsstöd, rumsliga datatyper och prestandaförbättringar från EF5 på .NET 4.0.
  • Förbättrad prestanda för Enumerable.Contains i LINQ-frågor.
  • Förbättrad uppvärmningstid (visningsgenerering), särskilt för stora modeller.
  • Anslutningsbar pluraliserings- och singulariseringstjänst.
  • Anpassade implementeringar av Equals eller GetHashCode i entitetsklasser stöds nu.
  • DbSet.AddRange/RemoveRange är ett optimerat sätt att lägga till eller ta bort flera entiteter från en uppsättning.
  • DbChangeTracker.HasChanges är ett enkelt och effektivt sätt att se om det finns några väntande ändringar som ska sparas i databasen.
  • SqlCeFunctions tillhandahåller en SQL Compact-motsvarighet till SqlFunctions.

Följande funktioner gäller endast för Code First:

  • Med de första konventionerna för anpassad kod kan du skriva egna konventioner för att undvika repetitiv konfiguration. Vi tillhandahåller ett enkelt API för enklare konventioner samt några mer komplexa byggstenar så att du kan skapa mer komplicerade konventioner.
  • Code-First-mappning till infoga/uppdatera/radera lagrade procedurer stöds nu.
  • Med Idempotent-migreringsskript kan du generera ett SQL-skript som kan uppgradera en databas i valfri version till den senaste versionen.
  • Med historiktabellen för konfigurerbara migreringar kan du anpassa definitionen av tabellen för migreringshistorik. Detta är särskilt användbart för databasprovidrar som kräver att lämpliga datatyper osv. anges för att tabellen Migreringshistorik ska fungera korrekt.
  • Flera kontexter per databas tar bort den tidigare begränsningen för en Kod först-modell per databas när du använder migreringar eller när Code First automatiskt skapade databasen åt dig.
  • DbModelBuilder.HasDefaultSchema är ett nytt Code First API som gör att standarddatabasschemat för en Code First-modell kan konfigureras på ett och samma ställe. Tidigare var standardschemat Code First hårdkodat till "dbo" och det enda sättet att konfigurera schemat som en tabell tillhörde var via ToTable-API:et.
  • Med metoden DbModelBuilder.Configurations.AddFromAssembly kan du enkelt lägga till alla konfigurationsklasser som definierats i en sammansättning när du använder konfigurationsklasser med Api:et Code First Fluent.
  • Med anpassade migreringar kan du lägga till ytterligare åtgärder som ska användas i dina kodbaserade migreringar.
  • Standardnivån för transaktionsisolering ändras till READ_COMMITTED_SNAPSHOT för databaser som skapats med Code First, vilket möjliggör mer skalbarhet och färre dödlägen.
  • Entitetstyper och komplexa typer kan nu vara kapslade in i klasser.

EF 5.0

Runtime EF 5.0.0 släpptes till NuGet i augusti 2012. Den här versionen introducerar några nya funktioner som uppräkningsstöd, tabellvärdesfunktioner, rumsliga datatyper och olika prestandaförbättringar.

Entity Framework Designer i Visual Studio 2012 introducerar också stöd för flera diagram per modell, färgläggning av former på designytan och batchimport av lagrade procedurer.

Här är en lista över innehåll som vi har sammanställt specifikt för EF 5-versionen:

EF 4.3.1

EF 4.3.1-körningsmiljön publicerades på NuGet i februari 2012 strax efter EF 4.3.0. Den här korrigeringsversionen innehöll några felkorrigeringar i EF 4.3-versionen och introducerade bättre LocalDB-stöd för kunder som använder EF 4.3 med Visual Studio 2012.

Här är en lista över innehåll som vi sammanställt specifikt för EF 4.3.1-versionen, det mesta av innehållet som tillhandahålls för EF 4.1 gäller fortfarande även för EF 4.3:

EF 4.3

EF 4.3.0-körtiden släpptes till NuGet i februari 2012. Den här versionen innehöll den nya funktionen Code First Migrations som gör att en databas som skapats av Code First kan ändras stegvis när din Code First-modell utvecklas.

Här är en lista över innehåll som vi sammanställer specifikt för EF 4.3-versionen, det mesta av innehållet som tillhandahålls för EF 4.1 gäller fortfarande även för EF 4.3:

EF 4.2

EF 4.2.0 runtime släpptes till NuGet i november 2011. Den här versionen innehåller felkorrigeringar i EF 4.1.1-versionen. Eftersom den här versionen endast innehöll felkorrigeringar kunde det ha varit korrigeringsversionen av EF 4.1.2, men vi valde att gå över till 4.2 så att vi kunde flytta från de datumbaserade korrigeringsversionsnummer som vi använde i 4.1.x-versionerna och anta semantisk versionsstandard för semantisk versionshantering.

Här är en lista över innehåll som vi sammanställer specifikt för EF 4.2-versionen, innehållet som tillhandahålls för EF 4.1 gäller fortfarande för EF 4.2 också:

EF 4.1.1

EF 4.1.10715-körbiblioteket släpptes till NuGet i juli 2011. Förutom buggkorrigeringar introducerade den här korrigeringsversionen vissa komponenter för att göra det enklare för designtidsverktyg att fungera med en Code First-modell. Dessa komponenter används av Code First Migrations (ingår i EF 4.3) och EF Power Tools.

Du kommer att märka det konstiga versionsnumret 4.1.10715 på paketet. Vi använde datumbaserade korrigeringsversioner innan vi bestämde oss för att införa semantisk versionshantering. Tänk på den här versionen som EF 4.1 patch 1 (eller EF 4.1.1).

Här är en lista över innehåll som vi har sammanställt för 4.1.1-versionen:

EF 4.1

EF 4.1.10331-körtiden var den första som publicerades på NuGet i april 2011. Den här versionen inkluderade det förenklade DBContext API och Code First-arbetsflödet.

Du kommer att märka det konstiga versionsnumret, 4.1.10331, som verkligen borde ha varit 4.1. Dessutom finns det en version av 4.1.10311 som borde ha varit 4.1.0-rc ("rc" står för "release candidate"). Vi använde datumbaserade korrigeringsversioner innan vi bestämde oss för att införa semantisk versionshantering.

Här är en lista över innehåll som vi har sammanställt för 4.1-versionen. Mycket av det gäller fortfarande för senare versioner av Entity Framework:

EF 4.0

Den här versionen ingick i .NET Framework 4 och Visual Studio 2010 i april 2010. Viktiga nya funktioner i den här versionen inkluderade POCO-stöd, sekundärnyckelmappning, lat inläsning, testbarhetsförbättringar, anpassningsbar kodgenerering och model first-arbetsflödet.

Även om det var den andra versionen av Entity Framework fick den namnet EF 4 för att överensstämma med den .NET Framework-version som den levererades med. Efter den här versionen började vi göra Entity Framework tillgängligt på NuGet och antog semantisk versionshantering eftersom vi inte längre var knutna till .NET Framework-versionen.

Observera att vissa efterföljande versioner av .NET Framework har levererats med betydande uppdateringar av de inkluderade EF-bitarna. Faktum är att många av de nya funktionerna i EF 5.0 implementerades som förbättringar av dessa bitar. Men för att rationalisera versionsberättelsen för EF fortsätter vi att referera till EF-bitar som ingår i .NET Framework som EF 4.0-körning, medan alla nyare versioner består av EntityFramework NuGet-paketet.

EF 3.5

Den första versionen av Entity Framework ingick i .NET 3.5 Service Pack 1 och Visual Studio 2008 SP1, som släpptes i augusti 2008. Den här versionen gav grundläggande O/RM-stöd med hjälp av database first-arbetsflödet.