Dela via


Översikt över LINQ till DataSet

DataSet Är en av de mer använda komponenterna i ADO.NET. Det är ett viktigt element i den frånkopplade programmeringsmodellen som ADO.NET baseras på, och det gör att du uttryckligen kan cachelagrat data från olika datakällor. För presentationsnivån är den DataSet nära integrerad med GUI-kontroller för databindning. För mellannivån tillhandahåller den en cache som bevarar relationsformen för data och innehåller snabba enkla fråge- och hierarkinavigeringstjänster. En vanlig teknik som används för att minska antalet begäranden i en databas är att använda DataSet för cachelagring på mellannivån. Tänk dig till exempel ett datadrivet ASP.NET webbprogram. Ofta ändras inte en betydande del av programdata ofta och är vanligt för sessioner eller användare. Dessa data kan sparas i minnet på webbservern, vilket minskar antalet begäranden mot databasen och påskyndar användarens interaktioner. En annan användbar aspekt av DataSet är att det gör att ett program kan föra in delmängder av data från en eller flera datakällor i programutrymmet. Programmet kan sedan ändra data i minnet, samtidigt som dess relationsform bevaras.

Trots dess framträdande har den DataSet begränsade frågefunktioner. Metoden Select kan användas för filtrering och sortering, och GetChildRows metoderna och GetParentRow kan användas för hierarkinavigering. För allt mer komplext måste utvecklaren dock skriva en anpassad fråga. Detta kan resultera i program som presterar dåligt och är svåra att underhålla.

LINQ till DataSet gör det enklare och snabbare att köra frågor mot data som cachelagras i ett DataSet objekt. Dessa frågor uttrycks i själva programmeringsspråket i stället för som strängliteraler inbäddade i programkoden. Det innebär att utvecklare inte behöver lära sig ett separat frågespråk. Dessutom gör LINQ till DataSet det möjligt för Visual Studio-utvecklare att arbeta mer produktivt, eftersom Visual Studio IDE tillhandahåller kompileringstidssyntaxkontroll, statisk typning och IntelliSense-stöd för LINQ. LINQ till DataSet kan också användas för att fråga efter data som har konsoliderats från en eller flera datakällor. Detta möjliggör många scenarier som kräver flexibilitet i hur data representeras och hanteras. I synnerhet kräver allmänna rapporterings-, analys- och business intelligence-program den här metoden för manipulering.

Köra frågor mot datauppsättningar med LINQ till DataSet

Innan du kan börja köra frågor mot ett DataSet objekt med LINQ till DataSet måste du fylla i DataSet. Det finns flera sätt att läsa in data i en DataSet, till exempel att använda DataAdapter klassen eller LINQ till SQL. När data har lästs in i ett DataSet objekt kan du börja köra frågor mot dem. Att formulera frågor med LINQ till DataSet liknar att använda Language-Integrated Query (LINQ) mot andra LINQ-aktiverade datakällor. LINQ-frågor kan utföras mot enstaka tabeller i en DataSet eller mot fler än en tabell med hjälp av frågeoperatorerna Join och GroupJoin standardfrågan.

LINQ-frågor stöds mot både inskrivna och otypade DataSet objekt. Om schemat för DataSet programmet är känt vid programdesignen rekommenderas ett skrivet DataSet . I ett skrivet DataSethar tabellerna och raderna skrivit medlemmar för var och en av kolumnerna, vilket gör frågorna enklare och mer läsbara.

Utöver de vanliga frågeoperatorer som implementeras i System.Core.dll lägger LINQ till DataSet till flera DataSet-specifika tillägg som gör det enklare att fråga över en uppsättning DataRow objekt. Dessa DataSet-specifika tillägg inkluderar operatorer för att jämföra sekvenser av rader, samt metoder som ger åtkomst till kolumnvärdena för en DataRow.

N-nivåprogram och LINQ till DataSet

N-nivådataprogram är datacentrerade program som är uppdelade i flera logiska lager (eller nivåer). Ett typiskt N-nivåprogram innehåller en presentationsnivå, en mellannivå och en datanivå. Om du separerar programkomponenter i separata nivåer ökar programmets underhållbarhet och skalbarhet. Mer information om N-nivådataprogram finns i Arbeta med datauppsättningar i n-nivåprogram.

I N-nivåprogram DataSet används ofta på mellannivån för att cachelagrat information för ett webbprogram. LINQ-till-DataSet-frågefunktionen implementeras via tilläggsmetoder och utökar den befintliga ADO.NET 2.0 DataSet.

Se även