When you decide whether your application should use a DataReader (see Retrieving Data Using a DataReader (ADO。NET)) or a DataSet (see DataSets, DataTables, and DataViews (ADO。NET)), consider the type of functionality that your application requires。 Use a DataSet to do the following:
Cache data locally in your application so that you can manipulate it。 If you only need to read the results of a query, the DataReader is the better choice。
Remote data between tiers or from an XML Web service。
Interact with data dynamically such as binding to a Windows Forms control or combining and relating data from multiple sources。
Perform extensive processing on data without requiring an open connection to the data source, which frees the connection to be used by other clients。
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。 Although the DataAdapter uses the DataReader to fill the contents of a DataSet (see Populating a DataSet from a DataAdapter (ADO。NET)), 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 DataSet
LINQ to DataSet provides query capabilities and compile-time type checking over data cached in a DataSet object。 It allows you to write queries in one of the 。NET Framework development language, such as C# or Visual Basic。
LINQ to SQL
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。 Each table is represented by a separate class, tightly coupling the object model to the relational database schema。 LINQ to SQL translates language-integrated queries in the object model into Transact-SQL and sends them to the database for execution。 When the database returns the results, LINQ to SQL translates the results back into objects。
ADO。NET Entity Framework
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。 The goal is to decrease the amount of code and maintenance required for data-oriented applications。
ADO。NET Data Services
The ADO。NET Data Services framework is used to deploy data services on the Web or an intranet。 The data is structured as entities and relationships according to the specifications of the Entity Data Model。 Data deployed on this model is addressable by standard HTTP protocol。
XML and ADO。NET
ADO。NET leverages the power of XML to provide disconnected access to data。 ADO。NET was designed hand-in-hand with the XML classes in the 。NET Framework; both are components of a single architecture。
ADO。NET and the XML classes in the 。NET Framework converge in the DataSet object。 The DataSet can be populated with data from an XML source, whether it is a file or an XML stream。 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。 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。
2、ADO。NET Data Platform
The ADO。NET Data Platform is a multi-release strategy to decrease the amount of coding and maintenance required for developers by enabling them to program against conceptual entity data models。 This platform includes the ADO。NET Entity Framework and related technologies。