Applicazioni a più livelli e remote con LINQ to SQL

È possibile creare applicazioni a più livelli che usano LINQ to SQL. In genere, il contesto dati di LINQ to SQL, le classi di entità e la logica di costruzione delle query risiedono nel livello intermedio come livello di accesso ai dati (DAL). La regola business e i dati non persistenti possono essere implementati completamente in classi e metodi parziali di entità e nel contesto dati oppure possono essere implementati in classi separate.

Il livello client o di presentazione chiama i metodi nell'interfaccia remota del livello intermedio e il DAL di tale livello eseguirà le query o le stored procedure di cui è stato eseguito il mapping ai metodi DataContext. Il livello intermedio in genere restituisce i dati ai client come rappresentazioni XML di entità o oggetti proxy.

Nel livello intermedio, le entità vengono create dal contesto dati che tiene traccia dello stato e gestisce il caricamento posticipato e l'invio delle modifiche al database. Queste entità sono "collegate" all'oggetto DataContext. Tuttavia, le entità vengono disconnesse dopo l'invio a un altro livello mediante la serializzazione, ovvero DataContext non tiene più traccia del relativo stato. Le entità inviate dal client per gli aggiornamenti devono essere ricollegate al contesto dati prima che LINQ to SQL sia in grado di inviare le modifiche al database. Il client ha lo scopo di fornire al livello intermedio i valori originali e/o i timestamp se richiesti per i controlli di concorrenza ottimistica.

Nelle applicazioni ASP.NET, LinqDataSource gestisce gran parte di questa complessità. Per altre informazioni, vedere Panoramica del controllo server Web LinqDataSource.

Risorse aggiuntive

Per altre informazioni sull'implementazione delle applicazioni a più livelli che usano LINQ to SQL, vedere gli argomenti seguenti:

Per altre informazioni sulle applicazioni a più livelli che usano i dataset ADO.NET, vedere Lavorare con set di dati in applicazioni a più livelli.

Vedi anche