Migrationsüberlegungen (Entity Framework)Migration Considerations (Entity Framework)

Das ADO.NET Entity Framework bietet mehrere Vorteile für eine vorhandene Anwendung.The ADO.NET Entity Framework provides several benefits to an existing application. 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.One of the most important of these benefits is the ability to use a conceptual model to separate data structures used by the application from the schema in the data source. Damit können Änderungen am Speichermodell oder an der Datenquelle selbst vorgenommen werden, ohne dass entsprechende Änderungen an der Anwendung notwendig werden.This enables you to easily make future changes to the storage model or to the data source itself without making compensating changes to the application. Weitere Informationen zu den Vorteilen der Verwendung der Entity FrameworkEntity Framework, finden Sie unter Übersicht über Entity Framework und Entity Data Model.For more information about the benefits of using the Entity FrameworkEntity Framework, see Entity Framework Overview and Entity Data Model.

Nutzen der Vorteile bei der die Entity FrameworkEntity Framework, Sie können eine vorhandene Anwendung Migrieren der Entity FrameworkEntity Framework.To take advantage of the benefits of the Entity FrameworkEntity Framework, you can migrate an existing application to the Entity FrameworkEntity Framework. Einige Aufgaben müssen für alle migrierten Anwendungen durchgeführt werden.Some tasks are common to all migrated applications. Diesen gemeinsamen Aufgaben gehören das Aktualisieren der Anwendung zur Verwendung von .NET Framework ab Version 3.5 Servicepack 1 (SP1), definieren Modelle zuordnen und Entity Framework konfiguriert.These common tasks include upgrading the application to use the .NET Framework starting with version 3.5 Service Pack 1 (SP1), defining models and mapping, and configuring the Entity Framework. Beim Migrieren einer Anwendung zu Entity FrameworkEntity Framework sind weitere Überlegungen erforderlich.When you migrate an application to the Entity FrameworkEntity Framework, there are additional considerations that apply. Diese Überlegungen sind vom Typ der migrierten Anwendung sowie von deren spezifischer Funktion abhängig.These considerations depend on the type of application being migrated and on the specific functionality of the application. In diesem Thema werden Informationen zur Auswahl der besten Methode zur Aktualisierung einer vorhandenen Anwendung bereitgestellt.This topic provides information to help you choose the best approach to use when you upgrade an existing application.

Allgemeine Überlegungen zur MigrationGeneral Migration Considerations

Folgende Aspekte sollten bei der Migration einer Anwendung zu Entity FrameworkEntity Framework beachtet werden:The following considerations apply when you migrate any application to the Entity FrameworkEntity Framework:

  • Jede Anwendung, die verwendet .NET Framework ab Version 3.5 SP1, kann zu Entity Framework migriert werden, solange der Datenanbieter für die Datenquelle, die von der Anwendung verwendet wird, Entity Framework unterstützt.Any application that uses the .NET Framework starting with version 3.5 SP1 can be migrated to the Entity Framework, as long as the data provider for the data source that is used by the application supports the Entity Framework.

  • Entity Framework unterstützt möglicherweise nicht alle Funktionen eines Datenquellenanbieters, auch wenn dieser Anbieter das Entity Framework unterstützt.The Entity Framework may not support all the functionality of a data source provider, even if that provider supports the Entity Framework.

  • Bei einer großen oder komplexen Anwendung, ist es nicht erforderlich, die gesamte Anwendung gleichzeitig zu Entity Framework zu migrieren.For a large or complex application, you are not required to migrate the whole application to the Entity Framework at one time. Jedoch muss jede Komponente der Anwendung, die das Entity Framework nicht verwendet, geändert werden, wenn sich die Datenquelle ändert.However, any part of the application that does not use the Entity Framework must still be changed when the data source changes.

  • Von Entity Framework verwendete datenanbieterverbindung kann mit anderen Teilen der Anwendung freigegeben werden, weil die Entity FrameworkEntity Framework ADO.NET-DATENANBIETERN entwickelt, die Zugriff auf die Datenquelle verwendet.The data provider connection used by the Entity Framework can be shared with other parts of your application because the Entity FrameworkEntity Framework uses ADO.NET data providers to access the data source. Beispielsweise wird der SqlClient-Anbieter vom Entity Framework für den Zugriff auf eine SQL Server-Datenbank verwendet.For example, the SqlClient provider is used by the Entity Framework to access a SQL Server database. Weitere Informationen finden Sie unter EntityClient-Anbieter für Entity Framework.For more information, see EntityClient Provider for the Entity Framework.

Allgemeine MigrationsaufgabenCommon Migration Tasks

Der Pfad zum Migrieren einer bestehenden Anwendung zu Entity FrameworkEntity Framework ist sowohl vom Typ der Anwendung, als auch von der bestehenden Datenzugriffsstrategie abhängig.The path to migrate an existing application to the Entity FrameworkEntity Framework depends both on the type of application and on the existing data access strategy. Sie müssen jedoch immer die folgenden Aufgaben ausführen, wenn Sie eine vorhandene Anwendung zum Entity FrameworkEntity Framework migrieren.However, you must always perform the following tasks when you migrate an existing application to the Entity FrameworkEntity Framework.

Hinweis

Alle diese Aufgaben werden automatisch ausgeführt, wenn Sie die Entity Data Model-Tools beginnend mit Visual Studio 2008 verwenden.All of these tasks are performed automatically when you use the Entity Data Model tools starting with Visual Studio 2008. Weitere Informationen finden Sie unter Vorgehensweise: Verwenden des Assistenten für Entity Data Model.For more information, see How to: Use the Entity Data Model Wizard.

  1. Aktualisieren der Anwendung.Upgrade the application.

    Ein Projekt erstellt wurde, mithilfe einer früheren Version von Visual Studio und .NET Framework muss aktualisiert werden, um Visual Studio 2008 SP1 und .NET Framework ab Version 3.5 SP1 zu verwenden.A project created by using an earlier version of Visual Studio and the .NET Framework must be upgraded to use Visual Studio 2008 SP1 and the .NET Framework starting with version 3.5 SP1.

  2. Definieren der Modelle und Zuordnungen.Define the models and mapping.

    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.The model and mapping files define entities in the conceptual model; structures in the data source, such as tables, stored procedures, and views; and the mapping between the entities and data source structures. Weitere Informationen finden Sie unter Vorgehensweise: Manuelles Definieren Sie das Modell und Zuordnungsdateien.For more information, see How to: Manually Define the Model and Mapping Files.

    Die im Speichermodell definierten Typen müssen mit dem Namen der Objekte in der Datenquelle übereinstimmen.Types that are defined in the storage model must match the name of objects in the data source. 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.If the existing application exposes data as objects, you must ensure that the entities and properties that are defined in the conceptual model match the names of these existing data classes and properties. Weitere Informationen finden Sie unter Vorgehensweise: Anpassen von Modellierungs- und Zuordnungsdateien zur Verwendung mit benutzerdefinierten Objekten.For more information, see How to: Customize Modeling and Mapping Files to Work with Custom Objects.

    Hinweis

    Der Entity Data Model-Designer wird verwendet, um Entitäten im konzeptionellen Modell umzubenennen, damit sie mit bestehenden Objekten übereinstimmen.The Entity Data Model Designer can be used to rename entities in the conceptual model to match existing objects. Weitere Informationen finden Sie unter Entity Data Model Designer.For more information, see Entity Data Model Designer.

  3. Definieren der Verbindungszeichenfolge.Define the connection string.

    Beim Ausführen von Abfragen für ein konzeptionelles Modell verwendet Entity FrameworkEntity Framework eine speziell formatierte Verbindungszeichenfolge.The Entity FrameworkEntity Framework uses a specially formatted connection string when executing queries against a conceptual model. Diese Verbindungszeichenfolge kapselt Informationen über die Modell- und Zuordnungsdateien und die Verbindung zur Datenquelle.This connection string encapsulates information about the model and mapping files and the connection to the data source. Weitere Informationen finden Sie unter Vorgehensweise: Definieren der Verbindungszeichenfolge.For more information, see How to: Define the Connection String.

  4. Konfigurieren Sie Visual Studio-Projekt.Configure the Visual Studio project.

    Verweise auf Entity FrameworkEntity Framework Assemblys und das Modell und die Mapping-Dateien müssen Visual Studio-Projekt hinzugefügt werden.References to Entity FrameworkEntity Framework assemblies and the model and mapping files must be added to the Visual Studio project. 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.You can add these mapping files to the project to ensure that they are deployed with the application in the location that is indicated in the connection string. Weitere Informationen finden Sie unter Vorgehensweise: Manuelles Konfigurieren eines Entity Framework-Projekts.For more information, see How to: Manually Configure an Entity Framework Project.

Überlegungen für Anwendungen mit vorhandenen ObjektenConsiderations for Applications with Existing Objects

Ab .NET Framework 4, die Entity FrameworkEntity Framework unterstützt "einfache alte" CLR-Objekte (POCO), auch Dauerhaftigkeit ignorierende Objekte genannt.Starting with the .NET Framework 4, the Entity FrameworkEntity Framework supports "plain old" CLR objects (POCO), also called persistence-ignorant objects. In den meisten Fällen können vorhandene Objekte bei nur geringfügigen Änderungen mit Entity FrameworkEntity Framework arbeiten.In most cases, your existing objects can work with the Entity FrameworkEntity Framework by making minor changes. Weitere Informationen finden Sie unter arbeiten mit POCO-Entitäten.For more information, see Working with POCO Entities. Sie können auch eine Anwendung Migrieren der Entity FrameworkEntity Framework und verwenden Sie die Datenklassen, die von den Entity Framework-Tools generiert werden.You can also migrate an application to the Entity FrameworkEntity Framework and use the data classes that are generated by the Entity Framework tools. Weitere Informationen finden Sie unter Vorgehensweise: Verwenden des Assistenten für Entity Data Model.For more information, see How to: Use the Entity Data Model Wizard.

Überlegungen für Anwendungen, die ADO.NET-Anbieter verwendenConsiderations for Applications that Use ADO.NET Providers

ADO.NET-Anbieter, z.B. SqlClient, ermöglichen Sie zum Abfragen einer Datenquelle, um Tabellendaten zurückzugeben.ADO.NET providers, such as SqlClient, enable you to query a data source to return tabular data. Daten können auch in ein ADO.NET DataSet geladen werden.Data can also be loaded into an ADO.NET DataSet. Die folgende Liste beschreibt Überlegungen zum Upgrade von einer Anwendung, die einen vorhandenen ADO NET-Anbieter verwendet:The following list describes considerations for upgrading an application that uses an existing ADO.NET provider:

  • Anzeigen von Tabellendaten mit einem Datenleser.Displaying tabular data by using a data reader.

    Es empfiehlt sich, eine Entity SQLEntity SQL Abfragen mithilfe des EntityClient-Anbieters und auflisten über den zurückgegebenen EntityDataReader Objekt.You may consider executing an Entity SQLEntity SQL query using the EntityClient provider and enumerating through the returned EntityDataReader object. Dies ist nur erforderlich, wenn Ihre Anwendung Tabellen mithilfe eines Datenlesers anzeigt und nicht die von Entity FrameworkEntity Framework bereitgestellten Funktionen für die Materialisierung von Daten in Objekte, die Nachverfolgung von Änderungen und die Durchführung von Aktualisierungen benötigt.Do this only if your application displays tabular data using a data reader and does not require the facilities provided by the Entity FrameworkEntity Framework for materializing data into objects, tracking changes, and making updates. 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.You can continue to use existing data access code that makes updates to the data source, but you can use the existing connection accessed from the StoreConnection property of EntityConnection. Weitere Informationen finden Sie unter EntityClient-Anbieter für Entity Framework.For more information, see EntityClient Provider for the Entity Framework.

  • Arbeiten mit DataSets.Working with DataSets.

    Die Entity FrameworkEntity Framework bietet viele der Datasets, einschließlich dauerhafte Speicherung, gebotenen Funktionen ändern, Überwachung, Datenbindung und Serialisieren von Objekten als XML-Daten.The Entity FrameworkEntity Framework provides many of the same functionalities provided by DataSet, including in-memory persistence, change tracking, data binding, and serializing objects as XML data. Weitere Informationen finden Sie unter arbeiten mit Objekten.For more information, see Working with Objects.

    Wenn die Entity FrameworkEntity Framework bietet keine Funktionen eines Datasets, die von Ihrer Anwendung benötigt, immer noch profitieren Sie von den Vorteilen von LINQ-Abfragen mithilfe von LINQ to DataSetLINQ to DataSet.If the Entity FrameworkEntity Framework does not provide the functionality of DataSet needed by your application, you can still take advantage of the benefits of LINQ queries by using LINQ to DataSetLINQ to DataSet. Weitere Informationen finden Sie unter LINQ to DataSet.For more information, see LINQ to DataSet.

Überlegungen für Anwendungen, die Daten an Steuerelemente bindenConsiderations for Applications that Bind Data to Controls

.NET Framework können Sie kapseln von Daten in einer Datenquelle, z.B. ein DataSet oder eine ASP.NET Datenquellen-Steuerelement, und klicken Sie dann Elemente der Benutzeroberfläche an diese Datensteuerelemente gebunden.The .NET Framework lets you encapsulate data in a data source, such as a DataSet or an ASP.NET data source control, and then bind user interface elements to those data controls. Die folgende Liste enthält Überlegungen zu Bindungssteuerelementen für Entity Framework-Daten.The following list describes considerations for binding controls to Entity Framework data.

  • Binden von Daten an Steuerelemente.Binding data to controls.

    Wenn Sie das konzeptionelle Modell, Abfragen der Entity FrameworkEntity Framework gibt die Daten als Objekte, die Instanzen von Entitätstypen sind.When you query the conceptual model, the Entity FrameworkEntity Framework returns the data as objects that are instances of entity types. Diese Objekte können direkt an Steuerelemente gebunden werden, und diese Bindung unterstützt Aktualisierungen.These objects can be bound directly to controls, and this binding supports updates. Dies bedeutet, die Änderungen an Daten in einem Steuerelement, z. B. eine Zeile in eine DataGridViewautomatisch in der Datenbank gespeichert werden, bei der SaveChanges Methode wird aufgerufen.This means that changes to data in a control, such as a row in a DataGridView, automatically get saved to the database when the SaveChanges method is called.

    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<T> zu binden.If your application enumerates the results of a query to display data in a DataGridView or other type of control that supports data binding, you can modify your application to bind the control to the result of an ObjectQuery<T>.

    Weitere Informationen finden Sie unter Binden von Objekten an Steuerelemente.For more information, see Binding Objects to Controls.

  • ASP.NET Datenquellen-Steuerelemente.ASP.NET data source controls.

    Die Entity FrameworkEntity Framework enthält ein Datenquellen-Steuerelement die Datenbindung in ASP.NET Web-Anwendungen vereinfacht.The Entity FrameworkEntity Framework includes a data source control designed to simplify data binding in ASP.NET Web applications. Weitere Informationen finden Sie unter Übersicht über das EntityDataSource-Webserversteuerelement.For more information, see EntityDataSource Web Server Control Overview.

Andere ÜberlegungenOther Considerations

Im Folgenden werden Überlegungen angestellt, die möglicherweise bei der Migration bestimmter Anwendungstypen zu Entity Framework von Bedeutung sind.The following are considerations that may apply when you migrate specific types of applications to the Entity Framework.

  • Anwendungen, die Datendienste verfügbar machen.Applications that expose data services.

    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.Web services and applications that are based on the Windows Communication Foundation (WCF) expose data from an underlying data source by using an XML request/response messaging format. Entity FrameworkEntity Framework unterstützt die Serialisierung von Entitätsobjekten mit binärer Serialisierung, XML-Serialisierung oder WCF-Datenvertragsserialisierung.The Entity FrameworkEntity Framework supports the serialization of entity objects by using binary, XML, or WCF data contract serialization. Sowohl binäre als auch WCF-Serialisierung unterstützen die vollständige Serialisierung von Objektdiagrammen.Binary and WCF serialization both support full serialization of object graphs. Weitere Informationen finden Sie unter Erstellen von N-Tier-Anwendungen.For more information, see Building N-Tier Applications.

  • Anwendungen, die XML-Daten verwenden.Applications that use XML data.

    Die Objektserialisierung ermöglicht die Erstellung von Entity FrameworkEntity Framework-Datendiensten.Object serialization enables you to create Entity FrameworkEntity Framework data services. Diese Dienste stellen Daten für Anwendungen bereit, die XML-Daten verwenden, z. B. AJAX-basierte Internetanwendungen.These services provide data to applications that consume XML data, such as AJAX-based Internet applications. Erwägen Sie in diesen Fällen die Verwendung von WCF Data ServicesWCF Data Services.In these cases, consider using WCF Data ServicesWCF Data Services. Diese Datendienste basieren auf dem Entity Data Model und dynamischen Zugriff auf Entitätsdaten mithilfe von standardmäßigen Representational State Transfer (REST) HTTP-Aktionen bieten, z. B. GET, PUT und POST.These data services are based on the Entity Data Model and provide dynamic access to entity data by using standard Representational State Transfer (REST) HTTP actions, such as GET, PUT, and POST. Weitere Informationen finden Sie unter WCF Data Services 4.5.For more information, see WCF Data Services 4.5.

    Entity FrameworkEntity Framework unterstützt keinen systemeigenen XML-Datentyp.The Entity FrameworkEntity Framework does not support a native-XML data type. 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.This means that when an entity is mapped to a table with an XML column, the equivalent entity property for the XML column is a string. Objekte können getrennt und als XML serialisiert werden.Objects can be disconnected and serialized as XML. Weitere Informationen finden Sie unter Serialisieren von Objekten.For more information, see Serializing Objects.

    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.If your application requires the ability to query XML data, you can still take advantage of the benefits of LINQ queries by using LINQ to XML. Weitere Informationen finden Sie unter LINQ to XML (C#) oder LINQ to XML (Visual Basic).For more information, see LINQ to XML (C#) or LINQ to XML (Visual Basic).

  • Anwendungen, die den Zustand beibehalten.Applications that maintain state.

    ASP.NET Web-Anwendungen müssen häufig den Zustand einer Webseite oder einer Sitzung des Benutzers verwalten.ASP.NET Web applications must frequently maintain the state of a Web page or of a user session. Objekte in einer ObjectContext Instanz kann im Ansichtszustand Client oder im Sitzungszustand auf dem Server gespeichert, und später abgerufen und an einem neuen Objektkontext erneut angefügt.Objects in an ObjectContext instance can be stored in the client view state or in the session state on the server, and later retrieved and reattached to a new object context. Weitere Informationen finden Sie unter Anfügen und Trennen von Objekten.For more information, see Attaching and Detaching Objects.

Siehe auchSee also