N-nivå och fjärrprogram med LINQ till SQL
Du kan skapa n-nivå- eller flernivåprogram som använder LINQ till SQL. Normalt finns LINQ till SQL-datakontext, entitetsklasser och frågekonstruktionslogik på mellannivån som dataåtkomstlager (DAL). Affärslogik och icke-beständiga data kan implementeras helt i partiella klasser och metoder för entiteter och datakontexten, eller så kan de implementeras i separata klasser.
Klient- eller presentationsskiktet anropar metoder på mellannivåns fjärrgränssnitt, och DAL på den nivån kör frågor eller lagrade procedurer som mappas till DataContext metoder. Mellannivån returnerar data till klienter vanligtvis som XML-representationer av entiteter eller proxyobjekt.
På mellannivån skapas entiteter av datakontexten, som spårar deras tillstånd, och hanterar uppskjuten inläsning från och överföring av ändringar till databasen. Dessa entiteter är "kopplade" till DataContext
. Men när entiteterna har skickats till en annan nivå via serialisering kopplas de från, vilket innebär att DataContext
de inte längre spårar deras tillstånd. Entiteter som klienten skickar tillbaka för uppdateringar måste kopplas till datakontexten igen innan LINQ till SQL kan skicka ändringarna till databasen. Klienten ansvarar för att ange ursprungliga värden och/eller tidsstämplar tillbaka till mellannivån om de krävs för optimistiska samtidighetskontroller.
I ASP.NET program hanterar den LinqDataSource största delen av den här komplexiteten. Mer information finns i Översikt över LinqDataSource-webbserverkontroll.
Ytterligare resurser
Mer information om hur du implementerar n-nivåprogram som använder LINQ till SQL finns i följande avsnitt:
Mer information om n-nivåprogram som använder ADO.NET DataSets finns i Arbeta med datauppsättningar i n-nivåprogram.