Overwegingen voor migratie (Entity Framework)
Het ADO.NET Entity Framework biedt verschillende voordelen voor een bestaande toepassing. Een van de belangrijkste van deze voordelen is de mogelijkheid om een conceptueel model te gebruiken om gegevensstructuren die door de toepassing worden gebruikt te scheiden van het schema in de gegevensbron. Hierdoor kunt u eenvoudig toekomstige wijzigingen aanbrengen in het opslagmodel of de gegevensbron zelf zonder compenserende wijzigingen aan te brengen in de toepassing. Zie Entity Framework Overview and Entity Data Model (Overzicht en Entiteitsgegevensmodel) voor meer informatie over de voordelen van het gebruik van Entity Framework.
Als u wilt profiteren van de voordelen van Entity Framework, kunt u een bestaande toepassing migreren naar het Entity Framework. Sommige taken zijn gebruikelijk voor alle gemigreerde toepassingen. Deze algemene taken omvatten het upgraden van de toepassing voor het gebruik van .NET Framework vanaf versie 3.5 Service Pack 1 (SP1), het definiëren van modellen en toewijzing en het configureren van het Entity Framework. Wanneer u een toepassing migreert naar Entity Framework, zijn er aanvullende overwegingen die van toepassing zijn. Deze overwegingen zijn afhankelijk van het type toepassing dat wordt gemigreerd en van de specifieke functionaliteit van de toepassing. In dit onderwerp vindt u informatie om u te helpen bij het kiezen van de beste methode bij het upgraden van een bestaande toepassing.
Algemene overwegingen voor migratie
De volgende overwegingen zijn van toepassing wanneer u een toepassing migreert naar het Entity Framework:
Elke toepassing die gebruikmaakt van .NET Framework vanaf versie 3.5 SP1, kan worden gemigreerd naar entity framework, zolang de gegevensprovider voor de gegevensbron die door de toepassing wordt gebruikt, ondersteuning biedt voor het Entity Framework.
Het Entity Framework biedt mogelijk geen ondersteuning voor alle functionaliteit van een gegevensbronprovider, zelfs niet als deze provider het Entity Framework ondersteunt.
Voor een grote of complexe toepassing hoeft u de hele toepassing niet tegelijk naar het Entity Framework te migreren. Een deel van de toepassing die niet gebruikmaakt van Entity Framework, moet echter nog steeds worden gewijzigd wanneer de gegevensbron wordt gewijzigd.
De gegevensproviderverbinding die door Entity Framework wordt gebruikt, kan worden gedeeld met andere onderdelen van uw toepassing, omdat entity framework gebruikmaakt van ADO.NET gegevensproviders voor toegang tot de gegevensbron. De SqlClient-provider wordt bijvoorbeeld gebruikt door Entity Framework voor toegang tot een SQL Server-database. Zie EntityClient-provider voor het Entity Framework voor meer informatie.
Algemene migratietaken
Het pad voor het migreren van een bestaande toepassing naar Entity Framework is zowel afhankelijk van het type toepassing als van de bestaande strategie voor gegevenstoegang. U moet echter altijd de volgende taken uitvoeren wanneer u een bestaande toepassing migreert naar entity framework.
Notitie
Al deze taken worden automatisch uitgevoerd wanneer u de hulpprogramma's voor Entity Data Model gebruikt vanaf Visual Studio 2008. Zie De wizard Entiteitsgegevensmodel gebruiken voor meer informatie.
Voer een upgrade uit van de toepassing.
Een project dat is gemaakt met een eerdere versie van Visual Studio en .NET Framework, moet worden bijgewerkt om Visual Studio 2008 SP1 en .NET Framework te gebruiken vanaf versie 3.5 SP1.
Definieer de modellen en toewijzing.
Het model en de toewijzingsbestanden definiëren entiteiten in het conceptuele model; structuren in de gegevensbron, zoals tabellen, opgeslagen procedures en weergaven; en de toewijzing tussen de entiteiten en gegevensbronstructuren. Zie Procedures voor meer informatie: Het model en de toewijzingsbestanden handmatig definiëren.
Typen die in het opslagmodel zijn gedefinieerd, moeten overeenkomen met de naam van objecten in de gegevensbron. Als de bestaande toepassing gegevens als objecten weergeeft, moet u ervoor zorgen dat de entiteiten en eigenschappen die zijn gedefinieerd in het conceptuele model overeenkomen met de namen van deze bestaande gegevensklassen en -eigenschappen. Zie Procedures voor meer informatie : Modellering en toewijzingsbestanden aanpassen om met aangepaste objecten te werken.
Notitie
De Entity Data Model Designer kan worden gebruikt om de naam van entiteiten in het conceptuele model te wijzigen zodat deze overeenkomen met bestaande objecten. Zie Entity Data Model Designer voor meer informatie.
Definieer de verbindingsreeks.
Entity Framework maakt gebruik van een speciaal opgemaakte verbindingsreeks bij het uitvoeren van query's op een conceptueel model. Dit verbindingsreeks bevat informatie over het model en de toewijzingsbestanden en de verbinding met de gegevensbron.
Configureer het Visual Studio-project.
Verwijzingen naar Entity Framework-assembly's en het model en de toewijzingsbestanden moeten worden toegevoegd aan het Visual Studio-project. U kunt deze toewijzingsbestanden toevoegen aan het project om ervoor te zorgen dat ze worden geïmplementeerd met de toepassing op de locatie die wordt aangegeven in de verbindingsreeks. Zie Procedure voor meer informatie: Een Entity Framework-project handmatig configureren.
Overwegingen voor toepassingen met bestaande objecten
Vanaf .NET Framework 4 ondersteunt Entity Framework 'gewone oude' CLR-objecten (POCO), ook wel persistent-negerende objecten genoemd. In de meeste gevallen kunnen uw bestaande objecten met entity framework werken door kleine wijzigingen aan te brengen. Zie Werken met POCO-entiteiten voor meer informatie. U kunt ook een toepassing migreren naar entity framework en de gegevensklassen gebruiken die worden gegenereerd door de Entity Framework-hulpprogramma's. Zie De wizard Entiteitsgegevensmodel gebruiken voor meer informatie.
Overwegingen voor toepassingen die gebruikmaken van ADO.NET-providers
ADO.NET providers, zoals SqlClient, kunt u een query uitvoeren op een gegevensbron om tabellaire gegevens te retourneren. Gegevens kunnen ook worden geladen in een ADO.NET DataSet. In de volgende lijst worden overwegingen beschreven voor het upgraden van een toepassing die gebruikmaakt van een bestaande ADO.NET-provider:
Tabelgegevens weergeven met behulp van een gegevenslezer.
U kunt overwegen om een Entity SQL-query uit te voeren met behulp van de EntityClient-provider en te inventariseren via het geretourneerde EntityDataReader object. Doe dit alleen als in uw toepassing tabelgegevens worden weergegeven met behulp van een gegevenslezer en de faciliteiten van entity framework niet nodig zijn voor het materialiseren van gegevens in objecten, het bijhouden van wijzigingen en het aanbrengen van updates. U kunt bestaande gegevenstoegangscode blijven gebruiken die updates voor de gegevensbron maakt, maar u kunt de bestaande verbinding gebruiken die wordt geopend vanuit de StoreConnection eigenschap van EntityConnection. Zie EntityClient-provider voor het Entity Framework voor meer informatie.
Werken met DataSets.
Het Entity Framework biedt veel van dezelfde functies die door DataSet worden geleverd, waaronder persistentie in het geheugen, wijzigingen bijhouden, gegevensbinding en serialiseren van objecten als XML-gegevens. Zie Werken met objecten voor meer informatie.
Als Entity Framework niet de functionaliteit biedt van DataSet die nodig is voor uw toepassing, kunt u nog steeds profiteren van de voordelen van LINQ-query's met behulp van LINQ naar DataSet. Zie LINQ naar DataSet voor meer informatie.
Overwegingen voor toepassingen die gegevens binden aan besturingselementen
Met .NET Framework kunt u gegevens in een gegevensbron inkapselen, zoals een dataset of een ASP.NET besturingselement voor gegevensbronnen, en vervolgens elementen van de gebruikersinterface binden aan deze gegevensbesturingselementen. In de volgende lijst worden overwegingen beschreven voor bindingsbesturingselementen voor Entity Framework-gegevens.
Gegevens binden aan besturingselementen.
Wanneer u een query uitvoert op het conceptuele model, retourneert Entity Framework de gegevens als objecten die exemplaren van entiteitstypen zijn. Deze objecten kunnen rechtstreeks worden gebonden aan besturingselementen en deze binding ondersteunt updates. Dit betekent dat wijzigingen in gegevens in een besturingselement, zoals een rij in een DataGridView, automatisch worden opgeslagen in de database wanneer de SaveChanges methode wordt aangeroepen.
Als uw toepassing de resultaten van een query opsommen om gegevens weer te geven in een DataGridView of ander type besturingselement dat gegevensbinding ondersteunt, kunt u uw toepassing wijzigen om het besturingselement te binden aan het resultaat van een ObjectQuery<T>.
Zie Bindingsobjecten aan besturingselementen voor meer informatie.
ASP.NET besturingselementen voor gegevensbronnen.
Entity Framework bevat een besturingselement voor gegevensbronnen dat is ontworpen om gegevensbinding in ASP.NET webtoepassingen te vereenvoudigen. Zie Overzicht van Het besturingselement EntityDataSource-webserver voor meer informatie.
Andere overwegingen
Hier volgen overwegingen die van toepassing kunnen zijn wanneer u specifieke typen toepassingen migreert naar het Entity Framework.
Toepassingen die gegevensservices beschikbaar maken.
Webservices en toepassingen die zijn gebaseerd op WCF (Windows Communication Foundation) maken gegevens uit een onderliggende gegevensbron beschikbaar met behulp van een XML-aanvraag-/antwoordberichtenindeling. Entity Framework ondersteunt de serialisatie van entiteitsobjecten met behulp van binaire, XML- of WCF-gegevenscontractserialisatie. Binaire en WCF-serialisatie ondersteunen beide volledige serialisatie van objectgrafieken. Zie Toepassingen met N-laag bouwen voor meer informatie.
Toepassingen die gebruikmaken van XML-gegevens.
Met objectserialisatie kunt u Entity Framework-gegevensservices maken. Deze services bieden gegevens aan toepassingen die XML-gegevens gebruiken, zoals op AJAX gebaseerde internettoepassingen. In deze gevallen kunt u overwegen WCF Data Services te gebruiken. Deze gegevensservices zijn gebaseerd op het Entiteitsgegevensmodel en bieden dynamische toegang tot entiteitsgegevens met behulp van STANDAARD REST-ACTIES (Representational State Transfer), zoals GET, PUT en POST. Zie WCF Data Services 4.5 voor meer informatie.
Het Entity Framework biedt geen ondersteuning voor een systeemeigen XML-gegevenstype. Dit betekent dat wanneer een entiteit is toegewezen aan een tabel met een XML-kolom, de equivalente entiteitseigenschap voor de XML-kolom een tekenreeks is. Objecten kunnen worden losgekoppeld en geserialiseerd als XML. Zie Objecten serialiseren voor meer informatie.
Als uw toepassing de mogelijkheid nodig heeft om XML-gegevens op te vragen, kunt u nog steeds profiteren van de voordelen van LINQ-query's door LINQ naar XML te gebruiken. Zie LINQ naar XML (C#) of LINQ naar XML (Visual Basic) voor meer informatie.
Toepassingen die de status behouden.
ASP.NET webtoepassingen moeten vaak de status van een webpagina of van een gebruikerssessie behouden. Objecten in een ObjectContext exemplaar kunnen worden opgeslagen in de clientweergavestatus of in de sessiestatus op de server, en later worden opgehaald en opnieuw worden gekoppeld aan een nieuwe objectcontext. Zie Objecten koppelen en loskoppelen voor meer informatie.