Share via


ADO.NET arkitektur

Databearbetningen har traditionellt främst förlitat sig på en anslutningsbaserad modell med två nivåer. Eftersom databehandling i allt högre grad använder arkitekturer på flera nivåer växlar programmerare till en frånkopplad metod för att ge bättre skalbarhet för sina program.

ADO.NET-komponenter

De två huvudkomponenterna i ADO.NET för att komma åt och manipulera data är .NET Framework-dataprovidrar och DataSet.

.NET Framework-dataprovidrar

.NET Framework-dataprovidrar är komponenter som uttryckligen har utformats för datamanipulering och snabb, framåtriktad, skrivskyddad åtkomst till data. Objektet Connection ger anslutning till en datakälla. Objektet Command ger åtkomst till databaskommandon för att returnera data, ändra data, köra lagrade procedurer och skicka eller hämta parameterinformation. Tillhandahåller DataReader en dataström med höga prestanda från datakällan. Slutligen DataAdapter tillhandahåller bryggan DataSet mellan objektet och datakällan. DataAdapter Använder Command objekt för att köra SQL-kommandon i datakällan för att både läsa in DataSet med data och stämma av ändringar som har gjorts i data i DataSet ryggen till datakällan. Mer information finns i .NET Framework Data Providers och Hämta och ändra data i ADO.NET.

Datauppsättningen

ADO.NET DataSet är uttryckligen utformad för dataåtkomst oberoende av alla datakällor. Därför kan den användas med flera och olika datakällor, användas med XML-data eller användas för att hantera data som är lokala för programmet. Innehåller DataSet en samling av ett eller flera DataTable objekt som består av rader och kolumner med data, samt primärnyckel, sekundärnyckel, villkor och relationsinformation om data i objekten DataTable . Mer information finns i DataSets, DataTables och DataViews.

Följande diagram illustrerar relationen mellan en .NET Framework-dataprovider och en DataSet.

ADO.Net graphic
ADO.NET arkitektur

Välja en DataReader eller en DataSet

När du bestämmer dig för om ditt program ska använda en DataReader (se Hämta data med hjälp av en DataReader) eller en DataSet (se DataSets, DataTables och DataViews) bör du överväga vilken typ av funktioner som krävs för ditt program. Använd a DataSet för att göra följande:

  • Cachelagrade data lokalt i ditt program så att du kan manipulera dem. Om du bara behöver läsa resultatet av en fråga DataReader är det bättre valet.

  • Fjärrdata mellan nivåer eller från en XML-webbtjänst.

  • Interagera med data dynamiskt, till exempel bindning till en Windows Forms-kontroll eller kombinera och relatera data från flera källor.

  • Utför omfattande bearbetning av data utan att kräva en öppen anslutning till datakällan, vilket frigör anslutningen som ska användas av andra klienter.

Om du inte behöver de funktioner som tillhandahålls av DataSetkan du förbättra programmets prestanda med hjälp DataReader av för att returnera dina data på ett skrivskyddat sätt. DataAdapter Även om använder DataReader för att fylla i innehållet i en DataSet (se Fylla i en DataSet från en DataAdapter), med hjälp DataReaderav , kan du öka prestanda eftersom du sparar minne som skulle förbrukas av DataSet, och undvika den bearbetning som krävs för att skapa och fylla innehållet i DataSet.

LINQ till DataSet

LINQ till DataSet tillhandahåller frågefunktioner och kompileringstidskontroll över data som cachelagras i ett DataSet-objekt. Det gör att du kan skriva frågor på ett av .NET Framework-utvecklingsspråket, till exempel C# eller Visual Basic. Mer information finns i LINQ till DataSet.

LINQ till SQL

LINQ till SQL stöder frågor mot en objektmodell som mappas till datastrukturerna i en relationsdatabas utan att använda en mellanliggande konceptuell modell. Varje tabell representeras av en separat klass som nära kopplar objektmodellen till relationsdatabasschemat. LINQ till SQL översätter språkintegrerade frågor i objektmodellen till Transact-SQL och skickar dem till databasen för körning. När databasen returnerar resultaten översätter LINQ till SQL resultatet tillbaka till objekt. Mer information finns i LINQ till SQL.

ADO.NET Entity Framework

ADO.NET Entity Framework är utformat för att göra det möjligt för utvecklare att skapa program för dataåtkomst genom programmering mot en konceptuell programmodell i stället för att programmera direkt mot ett relationslagringsschema. Målet är att minska mängden kod och underhåll som krävs för dataorienterade program. Mer information finns i ADO.NET Entity Framework.

WCF Data Services

WCF Data Services används för att distribuera datatjänster på webben eller ett intranät. Data är strukturerade som entiteter och relationer enligt specifikationerna för entitetsdatamodellen. Data som distribueras i den här modellen kan adresseras med standard-HTTP-protokoll. Mer information finns i WCF Data Services 4.5.

XML och ADO.NET

ADO.NET utnyttjar kraften i XML för att ge frånkopplad åtkomst till data. ADO.NET har utformats hand i hand med XML-klasserna i .NET Framework. båda är komponenter i en enda arkitektur.

ADO.NET och XML-klasserna i .NET Framework konvergerar i DataSet objektet. DataSet Kan fyllas med data från en XML-källa, oavsett om det är en fil eller en XML-dataström. DataSet Kan skrivas som W3C-kompatibel XML (World-Wide Web Consortium) som innehåller schemat som XSD-schema (XML Schema Definition Language), oavsett källan till data i DataSet. På grund av det interna serialiseringsformatet DataSet för är XML är det ett utmärkt medium för att flytta data mellan nivåer, vilket gör det DataSet optimala valet för fjärrkommunikation av data och schemakontext till och från en XML-webbtjänst. Mer information finns i XML-dokument och -data.

Se även