Migrationsaspekte (Entity Framework)
Das ADO.NET Entity Framework bietet für eine vorhandene Anwendung mehrere Vorteile. Einer der wichtigsten dieser Vorteile ist die Möglichkeit, mithilfe eines konzeptionellen Modells von der Anwendung verwendete Datenstrukturen vom Schema in der Datenquelle zu trennen. Damit können Änderungen am Speichermodell oder an der Datenquelle selbst vorgenommen werden, ohne dass entsprechende Änderungen an der Anwendung notwendig werden. Weitere Informationen über die Vorteile der Verwendung von Entity Framework finden Sie unter Übersicht über das Entity Framework und Entity Data Model.
Um von den Vorteilen von Entity Framework zu profitieren, können vorhandene Anwendungen zu Entity Framework migriert werden. Einige Aufgaben müssen für alle migrierten Anwendungen durchgeführt werden. Zu diesen gemeinsamen Aufgaben gehören das Aktualisieren der Anwendung zur Verwendung von .NET Framework ab Version 3.5 Service Pack 1 (SP1), die Definition von Modellen und Zuordnungen und die Konfiguration des Entity Framework. Beim Migrieren einer Anwendung zu Entity Framework sind weitere Überlegungen erforderlich. Diese Überlegungen sind vom Typ der migrierten Anwendung sowie von deren spezifischer Funktion abhängig. In diesem Thema werden Informationen zur Auswahl der besten Methode zur Aktualisierung einer vorhandenen Anwendung bereitgestellt.
Allgemeine Überlegungen zur Migration
Folgende Aspekte sollten bei der Migration einer Anwendung zu Entity Framework beachtet werden:
Jede Anwendung, die .NET Framework ab Version 3.5 SP1 verwendet, kann zu Entity Framework migriert werden, solange der Datenanbieter für die Datenquelle, die bei der Anwendung verwendet wird, Entity Framework unterstützt.
Entity Framework unterstützt möglicherweise nicht alle Funktionen eines Datenquellenanbieters, auch wenn dieser Anbieter das Entity Framework unterstützt.
Bei einer großen oder komplexen Anwendung, ist es nicht erforderlich, die gesamte Anwendung gleichzeitig zu Entity Framework zu migrieren. Jedoch muss jede Komponente der Anwendung, die das Entity Framework nicht verwendet, geändert werden, wenn sich die Datenquelle ändert.
Die von Entity Framework verwendete Datenanbieterverbindung kann mit anderen Komponenten der Anwendung gemeinsam verwendet werden, da Entity Framework ADO.NET-Datenanbieter für den Zugriff auf die Datenquelle verwendet. Beispielsweise wird der SqlClient-Anbieter vom Entity Framework für den Zugriff auf eine SQL Server-Datenbank verwendet. Weitere Informationen finden Sie unter EntityClient-Anbieter für Entity Framework.
Allgemeine Migrationsaufgaben
Der Pfad zum Migrieren einer bestehenden Anwendung zu Entity Framework ist sowohl vom Typ der Anwendung, als auch von der bestehenden Datenzugriffsstrategie abhängig. Sie müssen jedoch immer die folgenden Aufgaben ausführen, wenn Sie eine vorhandene Anwendung zum Entity Framework migrieren.
Hinweis: |
---|
Diese Aufgaben werden automatisch ausgeführt, wenn Sie die Entity Data Model-Tools beginnend mit verwenden.Weitere Informationen finden Sie unter Gewusst wie: Verwenden des Entity Data Model-Assistenten (Entity Framework). |
Aktualisieren der Anwendung.
Ein Projekt, das unter Verwendung einer früheren Version von Visual Studio und dem .NET Framework erstellt wurde, muss aktualisiert werden, damit SP1 und .NET Framework ab Version 3.5 SP1 verwendet werden können.
Definieren der Modelle und Zuordnungen.
Die Modell- und Zuordnungsdateien definieren Entitäten im konzeptionellen Modell, Strukturen in der Datenquelle, wie Tabellen, gespeicherte Prozeduren und Ansichten, und die Zuordnung zwischen den Entitäten und Datenquellenstrukturen. Weitere Informationen finden Sie unter Gewusst wie: Manuelles Definieren der Modell- und Zuordnungsdateien (Entity Framework).
Die im Speichermodell definierten Typen müssen mit dem Namen der Objekte in der Datenquelle übereinstimmen. Wenn die vorhandene Anwendung Daten als Objekte bereitstellt, müssen Sie sicherstellen, dass die Entitäten und Eigenschaften, die im konzeptionellen Modell definiert werden, mit den Namen der bestehenden Datenklassen und Eigenschaften übereinstimmen. Weitere Informationen finden Sie unter Gewusst wie: Anpassen von Modellierungs- und Zuordnungsdateien zur Verwendung mit benutzerdefinierten Objekten (Entity Framework).
Hinweis: Der Entity Data Model-Designer wird verwendet, um Entitäten im konzeptionellen Modell umzubenennen, damit sie mit bestehenden Objekten übereinstimmen.Weitere Informationen finden Sie unter ADO.NET Entity Data Model Designer. Definieren der Verbindungszeichenfolge.
Beim Ausführen von Abfragen für ein konzeptionelles Modell verwendet Entity Framework eine speziell formatierte Verbindungszeichenfolge. Diese Verbindungszeichenfolge kapselt Informationen über die Modell- und Zuordnungsdateien und die Verbindung zur Datenquelle. Weitere Informationen finden Sie unter Gewusst wie: Definieren der Verbindungszeichenfolge (Entity Framework).
Konfigurieren des Visual Studio-Projekts.
Dem Visual Studio-Projekt müssen Verweise auf Entity Framework -Assemblys und die Modell- und Zuordnungsdateien hinzugefügt werden. Sie können diese Mappingdateien dem Projekt hinzufügen, um zu gewährleisten, dass sie mit der Anwendung am in der Verbindungszeichenfolge angegebenen Speicherort bereitgestellt werden. Weitere Informationen finden Sie unter Gewusst wie: Manuelles Konfigurieren eines Entity Framework-Projekts.
Überlegungen für Anwendungen mit vorhandenen Objekten
Ab .NET Framework Version 4 unterstützt Entity Framework "einfache alte" CLR-Objekte (POCO), auch Dauerhaftigkeit ignorierende Objekte genannt. In den meisten Fällen können vorhandene Objekte bei nur geringfügigen Änderungen mit Entity Framework arbeiten. Weitere Informationen finden Sie unter Arbeiten mit POCO-Entitäten (Entity Framework). Sie können auch eine Anwendung zu Entity Framework migrieren und die Datenklassen verwenden, die von den Entity Framework-Tools generiert werden. Weitere Informationen finden Sie unter Gewusst wie: Verwenden des Entity Data Model-Assistenten (Entity Framework).
Überlegungen für Anwendungen, die ADO.NET-Anbieter verwenden
ADO.NET-Anbieter, z.B. SqlClient, ermöglichen das Abfragen einer Datenquelle, um Tabellendaten zurückzugeben. Daten können auch in ein ADO.NET-DataSet geladen werden. Die folgende Liste enthält Überlegungen zum Aktualisieren einer Anwendung, die einen vorhandenen ADO.NET-Anbieter verwendet:
- Anzeigen von Tabellendaten mit einem Datenleser.
Es empfiehlt sich, eine Entity SQL -Abfrage mithilfe des EntityClient-Anbieters auszuführen und das zurückgegebene EntityDataReader-Objekt aufzulisten. Dies ist nur erforderlich, wenn Ihre Anwendung Tabellen mithilfe eines Datenlesers anzeigt und nicht die von Entity Framework bereitgestellten Funktionen für die Materialisierung von Daten in Objekte, die Nachverfolgung von Änderungen und die Durchführung von Aktualisierungen benötigt. Sie können den vorhandenen Datenzugriffscode, der die Datenquelle aktualisiert, weiterhin verwenden. Sie können jedoch auch die vorhandene Verbindung verwenden, auf die über die StoreConnection-Eigenschaft der EntityConnection zugegriffen wird. Weitere Informationen finden Sie unter EntityClient-Anbieter für Entity Framework.
Arbeiten mit DataSets.
Entity Framework stellt viele der Funktionen bereit, die durch DataSet bereitgestellt werden, einschließlich dauerhafte Speicherung, Änderungsnachverfolgung, Datenbindung und das Serialisieren von Objekten als XML-Daten. Weitere Informationen finden Sie unter Arbeiten mit Objekten (Entity Framework).Wenn Entity Framework von Ihrer Anwendung benötigte Funktionen von DataSet nicht bereitstellt, können Sie dennoch von den Vorteilen von LINQ-Abfragen profitieren, indem Sie LINQ to DataSet verwenden. Weitere Informationen dazu finden Sie unter LINQ to DataSet.
Überlegungen für Anwendungen, die Daten an Steuerelemente binden
Mit .NET Framework können Daten in Datenquellen gekapselt werden, etwa als DataSet oder ASP.NET-Datenquellenkontrolle, und anschließend können Benutzeroberflächenelemente an diese Datensteuerelemente gebunden werden. Die folgende Liste enthält Überlegungen zu Bindungssteuerelementen für Entity Framework-Daten.
Binden von Daten an Steuerelemente.
Wenn das konzeptionelle Modell abgefragt wird, gibt Entity Framework die Daten als Objekte zurück, die Instanzen von Entitätstypen sind. Diese Objekte können direkt an Steuerelemente gebunden werden, und diese Bindung unterstützt Aktualisierungen. Das bedeutet, dass Änderungen an Daten in einem Steuerelement, z.B. eine Zeile in einem DataGridView, automatisch in der Datenbank gespeichert werden, wenn die SaveChanges-Methode aufgerufen wird.Wenn Ihre Anwendung die Ergebnisse einer Abfrage auflistet, um Daten in einem DataGridView oder einem anderen die Datenbindung unterstützenden Steuerelement anzuzeigen, können Sie die Anwendung ändern, um das Steuerelement an das Ergebnis eines ObjectQuery zu binden.
Weitere Informationen finden Sie unter Binden von Objekten an Steuerelemente (Entity Framework).
- ASP.NET-Datenquellensteuerelemente.
Entity Framework enthält ein Datenquellensteuerelement, das entworfen wurde, um die Datenbindung in ASP.NET-Webanwendungen zu vereinfachen. Weitere Informationen finden Sie unter Entity Framework-Datenquellensteuerelement.
Weitere Überlegungen
Im Folgenden werden Überlegungen angestellt, die möglicherweise bei der Migration bestimmter Anwendungstypen zu Entity Framework von Bedeutung sind.
- Anwendungen, die Datendienste verfügbar machen.
Webdienste und Anwendungen, die auf Windows Communication Foundation (WCF) beruhen, machen Daten aus einer zugrunde liegenden Datenquelle verfügbar, indem sie ein XML-Nachrichtenformat für Anforderung/Antwort verwenden. Entity Framework unterstützt die Serialisierung von Entitätsobjekten mit binärer Serialisierung, XML-Serialisierung oder WCF-Datenvertragsserialisierung. Sowohl binäre als auch WCF-Serialisierung unterstützen die vollständige Serialisierung von Objektdiagrammen. Weitere Informationen finden Sie unter Erstellen von N-Tier-Anwendungen (Entity Framework).
Anwendungen, die XML-Daten verwenden.
Die Objektserialisierung ermöglicht die Erstellung von Entity Framework -Datendiensten. Diese Dienste stellen Daten für Anwendungen bereit, die XML-Daten verwenden, z.B. AJAX-basierte Internetanwendungen. Erwägen Sie in diesen Fällen die Verwendung von ADO.NET Data Services. Diese Datendienste beruhen auf dem Entitätsdatenmodell und stellen einen dynamischen Zugriff auf Entitätsdaten bereit, indem sie die Representional State Transfer (REST) HTTP-Standardaktionen, wie GET, PUT und POST verwenden. Weitere Informationen finden Sie unter ADO.NET Data Services.Entity Framework unterstützt keinen systemeigenen XML-Datentyp. Das bedeutet, dass beim Mapping einer Entität zu einer Tabelle mit einer XML-Spalte die entsprechende Entitätseigenschaft für die XML-Spalte eine Zeichenfolge ist. Objekte können getrennt und als XML serialisiert werden. Weitere Informationen finden Sie unter Serialisieren von Objekten (Entity Framework).
Wenn die Anwendung das Abfragen von XML-Daten erfordert, können Sie dennoch von den Vorteilen von LINQ-Abfragen profitieren, indem Sie LINQ to XML verwenden. Weitere Informationen dazu finden Sie unter LINQ to XML.
- Anwendungen, die den Zustand beibehalten.
ASP.NET-Webanwendungen müssen häufig den Zustand einer Webseite oder einer Benutzersitzung beibehalten. Objekte in einer ObjectContext-Instanz, können im Clientansichtszustand oder im Sitzungszustand auf dem Server gespeichert werden und später abgerufen und einem neuen Objektkontext erneut angefügt werden. Weitere Informationen finden Sie unter Anfügen und Trennen von Objekten (Entity Framework).
Siehe auch
Konzepte
Überlegungen zur Bereitstellung (Entity Framework)
Entity Framework-Terminologie