Dela via


Migreringsöverväganden (Entity Framework)

ADO.NET Entity Framework ger flera fördelar för ett befintligt program. En av de viktigaste fördelarna är möjligheten att använda en konceptuell modell för att separera datastrukturer som används av programmet från schemat i datakällan. På så sätt kan du enkelt göra framtida ändringar i lagringsmodellen eller själva datakällan utan att göra kompenserande ändringar i programmet. Mer information om fördelarna med att använda Entity Framework finns i Översikt över Entity Framework och Entitetsdatamodell.

Om du vill dra nytta av fördelarna med Entity Framework kan du migrera ett befintligt program till Entity Framework. Vissa uppgifter är gemensamma för alla migrerade program. De här vanliga uppgifterna omfattar att uppgradera programmet till att använda .NET Framework från och med version 3.5 Service Pack 1 (SP1), definiera modeller och mappa och konfigurera Entity Framework. När du migrerar ett program till Entity Framework finns det ytterligare överväganden som gäller. Dessa överväganden beror på vilken typ av program som migreras och på programmets specifika funktioner. Det här avsnittet innehåller information som hjälper dig att välja den bästa metoden att använda när du uppgraderar ett befintligt program.

Allmänna migreringsöverväganden

Följande överväganden gäller när du migrerar ett program till Entity Framework:

  • Alla program som använder .NET Framework från och med version 3.5 SP1 kan migreras till Entity Framework, så länge dataprovidern för datakällan som används av programmet stöder Entity Framework.

  • Entity Framework kanske inte har stöd för alla funktioner hos en datakällaprovider, även om providern stöder Entity Framework.

  • För ett stort eller komplext program behöver du inte migrera hela programmet till Entity Framework på en gång. Alla delar av programmet som inte använder Entity Framework måste dock fortfarande ändras när datakällan ändras.

  • Dataprovideranslutningen som används av Entity Framework kan delas med andra delar av ditt program eftersom Entity Framework använder ADO.NET dataprovidrar för att komma åt datakällan. Till exempel används SqlClient-providern av Entity Framework för att komma åt en SQL Server-databas. Mer information finns i EntityClient-providern för Entity Framework.

Vanliga migreringsuppgifter

Sökvägen för att migrera ett befintligt program till Entity Framework beror både på typen av program och på den befintliga dataåtkomststrategin. Du måste dock alltid utföra följande uppgifter när du migrerar ett befintligt program till Entity Framework.

Kommentar

Alla dessa uppgifter utförs automatiskt när du använder entitetsdatamodellverktygen från och med Visual Studio 2008. Mer information finns i Så här använder du guiden Entitetsdatamodell.

  1. Uppgradera programmet.

    Ett projekt som skapats med hjälp av en tidigare version av Visual Studio och .NET Framework måste uppgraderas för att använda Visual Studio 2008 SP1 och .NET Framework från och med version 3.5 SP1.

  2. Definiera modeller och mappning.

    Modell- och mappningsfilerna definierar entiteter i den konceptuella modellen. strukturer i datakällan, till exempel tabeller, lagrade procedurer och vyer. och mappningen mellan entiteterna och datakällans strukturer. Mer information finns i Så här: Definiera modellen och mappningsfiler manuellt.

    Typer som definieras i lagringsmodellen måste matcha namnet på objekten i datakällan. Om det befintliga programmet exponerar data som objekt måste du se till att de entiteter och egenskaper som definieras i den konceptuella modellen matchar namnen på dessa befintliga dataklasser och egenskaper. Mer information finns i Så här: Anpassa modellering och mappning av filer så att de fungerar med anpassade objekt.

    Kommentar

    Entitetsdatamodelldesignern kan användas för att byta namn på entiteter i den konceptuella modellen för att matcha befintliga objekt. Mer information finns i Entity Data Model Designer.

  3. Definiera anslutningssträng.

    Entity Framework använder en särskilt formaterad anslutningssträng vid körning av frågor mot en konceptuell modell. Den här anslutningssträng kapslar in information om modellen och mappningsfilerna och anslutningen till datakällan. Mer information finns i Så här: Definiera Anslut ionssträngen.

  4. Konfigurera Visual Studio-projektet.

    Referenser till Entity Framework-sammansättningar och modell- och mappningsfiler måste läggas till i Visual Studio-projektet. Du kan lägga till dessa mappningsfiler i projektet för att säkerställa att de distribueras med programmet på den plats som anges i anslutningssträng. Mer information finns i Så här: Konfigurera ett Entity Framework-projekt manuellt.

Överväganden för program med befintliga objekt

Från och med .NET Framework 4 stöder Entity Framework "vanliga gamla" CLR-objekt (POCO), även kallade beständiga objekt. I de flesta fall kan dina befintliga objekt fungera med Entity Framework genom att göra mindre ändringar. Mer information finns i Arbeta med POCO-entiteter. Du kan också migrera ett program till Entity Framework och använda de dataklasser som genereras av Entity Framework-verktygen. Mer information finns i Så här använder du guiden Entitetsdatamodell.

Överväganden för program som använder ADO.NET providers

ADO.NET providers, till exempel SqlClient, kan du fråga en datakälla för att returnera tabelldata. Data kan också läsas in i en ADO.NET DataSet. I följande lista beskrivs överväganden för att uppgradera ett program som använder en befintlig ADO.NET-provider:

  • Visa tabelldata med hjälp av en dataläsare.

    Du kan överväga att köra en entitets-SQL-fråga med entityclient-providern och räkna upp genom det returnerade EntityDataReader objektet. Gör detta endast om ditt program visar tabelldata med hjälp av en dataläsare och inte kräver de resurser som tillhandahålls av Entity Framework för materialisering av data i objekt, spårning av ändringar och uppdateringar. Du kan fortsätta att använda befintlig kod för dataåtkomst som gör uppdateringar av datakällan, men du kan använda den befintliga anslutningen som nås från StoreConnection egenskapen EntityConnectionför . Mer information finns i EntityClient-providern för Entity Framework.

  • Arbeta med DataSets.

    Entity Framework tillhandahåller många av de funktioner som tillhandahålls av DataSet, inklusive minnesintern beständighet, ändringsspårning, databindning och serialiseringsobjekt som XML-data. Mer information finns i Arbeta med objekt.

    Om Entity Framework inte tillhandahåller de funktioner i DataSet som krävs av ditt program kan du fortfarande dra nytta av fördelarna med LINQ-frågor med hjälp av LINQ till DataSet. Mer information finns i LINQ till DataSet.

Överväganden för program som binder data till kontroller

Med .NET Framework kan du kapsla in data i en datakälla, till exempel en DataSet eller en ASP.NET datakällakontroll, och sedan binda användargränssnittselement till dessa datakontroller. I följande lista beskrivs överväganden för bindningskontroller till Entity Framework-data.

  • Binda data till kontroller.

    När du frågar den konceptuella modellen returnerar Entity Framework data som objekt som är instanser av entitetstyper. Dessa objekt kan bindas direkt till kontroller, och den här bindningen stöder uppdateringar. Det innebär att ändringar i data i en kontroll, till exempel en rad i en DataGridView, automatiskt sparas i databasen när SaveChanges metoden anropas.

    Om ditt program räknar upp resultatet av en fråga för att visa data i en DataGridView eller annan typ av kontroll som stöder databindning kan du ändra ditt program för att binda kontrollen till resultatet av en ObjectQuery<T>.

    Mer information finns i Bind objekt till kontroller.

  • ASP.NET datakällans kontroller.

    Entity Framework innehåller en datakälla som är utformad för att förenkla databindningen i ASP.NET webbprogram. Mer information finns i Översikt över EntityDataSource-webbserverkontroll.

Andra överväganden

Följande är överväganden som kan gälla när du migrerar specifika typer av program till Entity Framework.

  • Program som exponerar datatjänster.

    Webbtjänster och program som baseras på Windows Communication Foundation (WCF) exponerar data från en underliggande datakälla med hjälp av ett xml-meddelandeformat för begäran/svar. Entity Framework stöder serialisering av entitetsobjekt med hjälp av serialisering av binära data, XML eller WCF-datakontrakt. Binär och WCF-serialisering stöder både fullständig serialisering av objektdiagram. Mer information finns i Skapa N-nivåprogram.

  • Program som använder XML-data.

    Med objektserialisering kan du skapa Entity Framework-datatjänster. Dessa tjänster tillhandahåller data till program som använder XML-data, till exempel AJAX-baserade Internetprogram. I dessa fall bör du överväga att använda WCF Data Services. Dessa datatjänster baseras på entitetsdatamodellen och ger dynamisk åtkomst till entitetsdata med hjälp av REST-standardåtgärder (Representational State Transfer), till exempel GET, PUT och POST. Mer information finns i WCF Data Services 4.5.

    Entity Framework stöder inte en intern XML-datatyp. Det innebär att när en entitet mappas till en tabell med en XML-kolumn är motsvarande entitetsegenskap för XML-kolumnen en sträng. Objekt kan kopplas från och serialiseras som XML. Mer information finns i Serialisera objekt.

    Om ditt program kräver möjligheten att fråga XML-data kan du fortfarande dra nytta av fördelarna med LINQ-frågor med hjälp av LINQ till XML. Mer information finns i LINQ till XML (C#) eller LINQ till XML (Visual Basic).

  • Program som underhåller tillstånd.

    ASP.NET webbprogram måste ofta underhålla tillståndet för en webbsida eller en användarsession. Objekt i en ObjectContext instans kan lagras i klientvyns tillstånd eller i sessionstillståndet på servern och hämtas och kopplas senare till en ny objektkontext. Mer information finns i Koppla från och koppla från objekt.

Se även