N-schichtige Anwendungen und Remoteanwendungen mit LINQ to SQL
Sie können n-schichtige Anwendungen oder Anwendungen mit mehreren Ebenen erstellen, die LINQ to SQL verwenden. Datenkontext, Entitätsklassen und Abfrageerstellungslogik von LINQ to SQL befinden sich in der Regel auf der mittleren Schicht als Datenzugriffsschicht. Geschäftslogik und nicht dauerhafte Daten können vollständig in partiellen Klassen und Methoden von Entitäten und Datenkontext implementiert werden, oder sie können in separaten Klassen implementiert werden.
Die Client- oder Präsentationsebene ruft Methoden für die Remoteschnittstelle der mittleren Ebene auf, und die Datenzugriffsebene auf dieser Ebene führt Abfragen oder gespeicherte Prozeduren aus, die DataContext-Methoden zugeordnet sind. Die mittlere Ebene gibt die Daten normalerweise als XML-Darstellungen von Entitäten oder Proxyobjekten an Clients zurück.
Auf der mittleren Ebene werden Entitäten vom Datenkontext erstellt, der deren Zustand nachverfolgt und das verzögerte Laden von Änderungen aus der Datenbank und das Übergeben von Änderungen an die Datenbank verwaltet. Diese Entitäten werden an den DataContext
"angefügt". Nachdem die Entitäten jedoch mittels Serialisierung an eine andere Ebene gesendet wurden, werden sie getrennt, was dazu führt, dass ihr Zustand nicht mehr vom DataContext
nachverfolgt wird. Entitäten, die vom Client zum Update zurückgesendet werden, müssen erneut an den Datenkontext angefügt werden, bevor die Änderungen von LINQ to SQL an die Datenbank übergeben werden können. Der Client ist dafür zuständig, ursprüngliche Werte und/oder Timestamps wieder für die mittlere Ebene bereitzustellen, wenn diese für Überprüfungen auf vollständige Parallelität benötigt werden.
In ASP.NET-Anwendungen wird diese Komplexität größtenteils von LinqDataSource verwaltet. Weitere Informationen finden Sie unter Übersicht über das LinqDataSource-Webserver-Steuerelement.
Weitere Ressourcen
Weitere Informationen zur Implementierung von n-schichtigen Anwendungen, die LINQ to SQL verwenden, finden Sie unter den folgenden Themen:
Weitere Informationen zu n-schichtigen Anwendungen, die ADO.NET-DataSets verwenden, finden Sie unter Arbeiten mit Datasets in n-schichtigen Anwendungen.