N-уровневые и удаленные приложения и LINQ to SQL

Вы можете создавать n-уровни или многоуровневые приложения, использующие LINQ to SQL. Как правило, контекст данных LINQ to SQL, классы сущностей и логика построения запросов находятся на среднем уровне в качестве уровня доступа к данным (DAL). Бизнес-логика и непостоянные данные могут быть полностью реализованы в разделяемых классах, методах сущностей, контексте данных либо в отдельных классах.

Уровень клиента или представления вызывает методы в удаленном интерфейсе среднего уровня; DAL в этом интерфейсе выполнит запросы или хранимые процедуры, сопоставленные методам DataContext. Обычно средний уровень возвращает данные клиентам в виде XML-представлений сущностей или прокси-объектов.

На среднем уровне сущности создаются при помощи контекста данных, который отслеживает их состояние и управляет отложенной загрузкой из базы данных и передачей изменений в базу данных. Эти сущности присоединены к DataContext. Однако после отправки сущностей на другой уровень с помощью сериализации происходит их отсоединение, означающее, что DataContext больше не отслеживает их состояние. Сущности, которые клиент отправляет обратно для обновлений, необходимо повторно подключить к контексту данных, прежде чем LINQ to SQL может отправить изменения в базу данных. Если для проверок оптимистической блокировки требуются исходные значения и/или метки времени, клиент должен предоставить их обратно на средний уровень.

В приложениях ASP.NET LinqDataSource управляет большей частью данного сложного процесса. Дополнительные сведения см. в обзоре управления веб-сервером LinqDataSource.

Дополнительные ресурсы

Дополнительные сведения о реализации n-уровней приложений, использующих LINQ to SQL, см. в следующих разделах:

Дополнительные сведения о приложениях n-уровней, использующих ADO.NET DataSets, см. в статье "Работа с наборами данных в приложениях n-уровней".

См. также