ADO.NET-ArchitekturADO.NET Architecture

Die traditionelle Datenverarbeitung basierte primär auf einem verbindungsbasierten Modell mit zwei Ebenen.Data processing has traditionally relied primarily on a connection-based, two-tier model. Da für die Datenverarbeitung immer mehr auf Architekturen mit mehreren Ebenen zurückgegriffen wird, wird verstärkt mit nicht verbundenen Lösungen gearbeitet, um eine bessere Skalierbarkeit der Anwendungen zu erzielen.As data processing increasingly uses multi-tier architectures, programmers are switching to a disconnected approach to provide better scalability for their applications.

ADO.NET-KomponentenADO.NET Components

Die zwei Hauptkomponenten von ADO.net für den Zugriff auf und die DataSetBearbeitung von Daten sind die .NET Framework-Datenanbieter und.The two main components of ADO.NET for accessing and manipulating data are the .NET Framework data providers and the DataSet.

.NET Framework-Datenanbieter.NET Framework Data Providers

Die .NET Framework-Datenanbieter sind Komponenten, die explizit für die Datenbearbeitung und den schnellen, vorwärts gerichteten, schreibgeschützten Zugriff auf Daten entworfen wurden.The .NET Framework Data Providers are components that have been explicitly designed for data manipulation and fast, forward-only, read-only access to data. Das Connection-Objekt sorgt für die Verbindung mit einer Datenquelle.The Connection object provides connectivity to a data source. Mit dem Command-Objekt können Sie auf Datenbankbefehle zugreifen, um Daten zurückzugeben oder zu ändern, gespeicherte Prozeduren auszuführen und Parameterinformationen zu senden oder abzurufen.The Command object enables access to database commands to return data, modify data, run stored procedures, and send or retrieve parameter information. Der DataReader sorgt dafür, dass die Daten mit maximaler Geschwindigkeit per Stream bereitgestellt werden.The DataReader provides a high-performance stream of data from the data source. Der DataAdapter fungiert als Brücke zwischen dem DataSet-Objekt und der Datenquelle.Finally, the DataAdapter provides the bridge between the DataSet object and the data source. Der DataAdapter verwendet zum Ausführen von SQL-Befehlen an der Datenquelle Command-Objekte, um damit sowohl Daten in das DataSet zu laden als auch um die Datenquelle mit den an den Daten im DataSet vorgenommenen Änderungen zu aktualisieren.The DataAdapter uses Command objects to execute SQL commands at the data source to both load the DataSet with data and reconcile changes that were made to the data in the DataSet back to the data source. Weitere Informationen finden Sie unter .NET Framework-Datenanbietern und Abrufen und Ändern von Daten in ADO.net.For more information, see .NET Framework Data Providers and Retrieving and Modifying Data in ADO.NET.

Das "DataSet"The DataSet

Das ADO.NET-DataSet wurde explizit für den datenquellenunabhängigen Datenzugriff entwickelt.The ADO.NET DataSet is explicitly designed for data access independent of any data source. Aus diesem Grund kann es mit mehreren, unterschiedlichen Datenquellen, mit XML-Daten oder zum Verwalten von lokalen Anwendungsdaten verwendet werden.As a result, it can be used with multiple and differing data sources, used with XML data, or used to manage data local to the application. Das DataSet enthält eine Auflistung von einem oder mehreren DataTable-Objekten, die aus Datenzeilen und -spalten sowie aus Primärschlüsseln, Fremdschlüsseln, Einschränkungen und Beziehungsinformationen zu den in den DataTable-Objekten enthaltenen Daten bestehen.The DataSet contains a collection of one or more DataTable objects consisting of rows and columns of data, and also primary key, foreign key, constraint, and relation information about the data in the DataTable objects. Weitere Informationen finden Sie unter Datasets, DataTables und DataViews.For more information, see DataSets, DataTables, and DataViews.

Das folgende Diagramm veranschaulicht die Beziehung zwischen einem .NET Framework-Datenanbieter und DataSeteinem.The following diagram illustrates the relationship between a .NET Framework data provider and a DataSet.

ADO.net-GrafikADO.Net graphic
ADO.NET-ArchitekturADO.NET architecture

Auswählen eines "DataReader" oder eines "DataSet"Choosing a DataReader or a DataSet

Wenn Sie entscheiden, DataReader ob die Anwendung eine (siehe Abrufen von Daten mit einem DataReader) oder eine DataSet (siehe Datasets, DataTables und DataViews) verwenden soll, berücksichtigen Sie die Art der Funktionalität, die für die Anwendung erforderlich ist.When you decide whether your application should use a DataReader (see Retrieving Data Using a DataReader) or a DataSet (see DataSets, DataTables, and DataViews), consider the type of functionality that your application requires. Ein DataSet sollten Sie für folgende Aufgaben verwenden:Use a DataSet to do the following:

  • Lokales Zwischenspeichern von Daten in Ihrer Anwendung, um sie bearbeiten zu können.Cache data locally in your application so that you can manipulate it. Wenn die Ergebnisse einer Abfrage nur gelesen werden sollen, ist der DataReader die bessere Wahl.If you only need to read the results of a query, the DataReader is the better choice.

  • Verschieben von Daten zwischen Ebenen oder von einem XML-Webdienst.Remote data between tiers or from an XML Web service.

  • Dynamisches Interagieren mit Daten, wie Datenbindung an ein Windows Forms-Steuerelement, oder Kombinieren von und Erstellen einer Beziehung zwischen Daten aus mehreren Quellen.Interact with data dynamically such as binding to a Windows Forms control or combining and relating data from multiple sources.

  • Ausführen umfangreicher Datenverarbeitungsschritte ohne eine offene Verbindung zur Datenquelle. Dadurch wird die Verbindung zur Nutzung durch andere Clients freigegeben.Perform extensive processing on data without requiring an open connection to the data source, which frees the connection to be used by other clients.

Wenn Sie die vom DataSet bereitgestellte Funktionalität nicht benötigen, können Sie die Geschwindigkeit Ihrer Anwendung verbessern, indem Sie den DataReader verwenden, der Ihre Daten vorwärts gerichtet und schreibgeschützt zurückgibt.If you do not require the functionality provided by the DataSet, you can improve the performance of your application by using the DataReader to return your data in a forward-only, read-only manner. Obwohl die DataAdapter-Klasse die DataReader-Klasse verwendet, um den Inhalt von DataSet mithilfe von DataReader aufzufüllen (siehe Auffüllen eines Datasets über DataAdapter), können Sie die Leistung steigern, da Sie den Arbeitsspeicher sparen, den DataSet verbrauchen würde. Zudem entfällt der Verarbeitungsaufwand, der für das Erstellen und Auffüllen der Inhalte von DataSet erforderlich wäre.Although the DataAdapter uses the DataReader to fill the contents of a DataSet (see Populating a DataSet from a DataAdapter), by using the DataReader, you can boost performance because you will save memory that would be consumed by the DataSet, and avoid the processing that is required to create and fill the contents of the DataSet.

LINQ to DataSetLINQ to DataSet

LINQ to DataSet stellt Abfragefunktionen und Typüberprüfungsfunktionen zur Kompilierzeit über die in einem DataSet-Objekt zwischengespeicherten Daten bereit.LINQ to DataSet provides query capabilities and compile-time type checking over data cached in a DataSet object. Sie können damit Abfragen in einer der .NET Framework-Entwicklungssprachen schreiben, z. B. in C# oder Visual Basic.It allows you to write queries in one of the .NET Framework development language, such as C# or Visual Basic. Weitere Informationen finden Sie unter LINQ to DataSet.For more information, see LINQ to DataSet.

LINQ to SQLLINQ to SQL

LINQ to SQL unterstützt Abfragen für ein Objektmodell, das den Datenstrukturen einer relationalen Datenbank zugeordnet ist, ohne dass ein vorläufiges Konzeptmodell verwendet wird.LINQ to SQL supports queries against an object model that is mapped to the data structures of a relational database without using an intermediate conceptual model. Jede Tabelle wird durch eine separate Klasse dargestellt, wodurch das Objektmodell eng mit dem relationalen Datenbankschema verbunden wird.Each table is represented by a separate class, tightly coupling the object model to the relational database schema. LINQ to SQL übersetzt im Objektmodell vorhandene LINQ-Abfragen in Transact-SQL und sendet diese zur Ausführung an die Datenbank.LINQ to SQL translates language-integrated queries in the object model into Transact-SQL and sends them to the database for execution. Wenn die Datenbank die Ergebnisse zurückgibt, übersetzt LINQ to SQL die Ergebnisse zurück in Objekte.When the database returns the results, LINQ to SQL translates the results back into objects. Weitere Informationen finden Sie unter LINQ to SQL.For more information, see LINQ to SQL.

ADO.NET Entity FrameworkADO.NET Entity Framework

Das ADO.NET Entity Framework wurde entworfen, um Entwicklern die Möglichkeit zu geben, Anwendungen für den Datenzugriff zu erstellen, indem sie bei der Programmierung auf ein konzeptionelles Anwendungsmodell zugreifen können, anstatt direkt mit einem relationalen Speicherschema zu arbeiten.The ADO.NET Entity Framework is designed to enable developers to create data access applications by programming against a conceptual application model instead of programming directly against a relational storage schema. Das Ziel ist es, die Menge des Codes und den Wartungsaufwand zu verringern, die für datenorientierte Anwendungen erforderlich sind.The goal is to decrease the amount of code and maintenance required for data-oriented applications. Weitere Informationen finden Sie unter ADO.NET Entity Framework.For more information, see ADO.NET Entity Framework.

WCF Data ServicesWCF Data Services

WCF Data ServicesWCF Data Services wird verwendet, um Datendienste im Internet oder in einem Intranet bereitzustellen.is used to deploy data services on the Web or an intranet. Die Daten werden gemäß den Spezifikationen des Entity Data Model in Entitäten und Beziehungen strukturiert.The data is structured as entities and relationships according to the specifications of the Entity Data Model. Die in diesem Modell bereitgestellten Daten sind durch das Standard-HTTP-Protokoll adressierbar.Data deployed on this model is addressable by standard HTTP protocol. Weitere Informationen finden Sie unter WCF Data Services 4.5.For more information, see WCF Data Services 4.5.

XML und ADO.NETXML and ADO.NET

ADO.net nutzt die Leistungsfähigkeit von XML, um den getrennten Zugriff auf Daten bereitzustellen.ADO.NET leverages the power of XML to provide disconnected access to data. ADO.net wurde Hand in Hand mit den XML-Klassen in der .NET Framework entworfen. Beides sind Komponenten einer einzelnen Architektur.ADO.NET was designed hand-in-hand with the XML classes in the .NET Framework; both are components of a single architecture.

ADO.net und die XML-Klassen im-.NET Framework werden im DataSet -Objekt konvergiert.ADO.NET and the XML classes in the .NET Framework converge in the DataSet object. Das DataSet kann mit Daten aus einer XML-Quelle gefüllt werden, gleich, ob es sich dabei um eine Datei oder um einen XML-Stream handelt.The DataSet can be populated with data from an XML source, whether it is a file or an XML stream. Das DataSet kann als W3C-konformer XML-Code geschrieben werden, dessen Schema als XSD-Schema (XML Schema Definition Language) ausgeführt ist. Die Quelle der Daten im DataSet spielt dabei keine Rolle.The DataSet can be written as World-Wide Web Consortium (W3C) compliant XML that includes its schema as XML schema definition language (XSD) schema, regardless of the source of the data in the DataSet. Da das systemeigene Serialisierungsformat des DataSet XML ist, handelt es sich um ein hervorragendes Medium zum Verschieben von Daten zwischen den Ebenen der Architektur. Somit ist das DataSet eine optimale Wahl für das Remoting von Daten und Schemakontext zu und von einem XML-Webdienst.Because of the native serialization format of the DataSet is XML, it is an excellent medium for moving data between tiers, making the DataSet an optimal choice for remoting data and schema context to and from an XML Web service. Weitere Informationen hierzu finden Sie unter XML Documents and Data (XML-Dokumente und -Daten).For more information, see XML Documents and Data.

Siehe auchSee also