Вы можете создавать n-уровни или многоуровневые приложения, использующие LINQ to SQL. Как правило, контекст данных LINQ to SQL, классы сущностей и логика построения запросов находятся на среднем уровне в качестве уровня доступа к данным (DAL). Бизнес-логика и непостоянные данные могут быть полностью реализованы в разделяемых классах, методах сущностей, контексте данных либо в отдельных классах.
Уровень клиента или представления вызывает методы в удаленном интерфейсе среднего уровня; DAL в этом интерфейсе выполнит запросы или хранимые процедуры, сопоставленные методам DataContext. Обычно средний уровень возвращает данные клиентам в виде XML-представлений сущностей или прокси-объектов.
На среднем уровне сущности создаются при помощи контекста данных, который отслеживает их состояние и управляет отложенной загрузкой из базы данных и передачей изменений в базу данных. Эти сущности присоединены к DataContext. Однако после отправки сущностей на другой уровень с помощью сериализации происходит их отсоединение, означающее, что DataContext больше не отслеживает их состояние. Сущности, которые клиент отправляет обратно для обновлений, необходимо повторно подключить к контексту данных, прежде чем LINQ to SQL может отправить изменения в базу данных. Если для проверок оптимистической блокировки требуются исходные значения и/или метки времени, клиент должен предоставить их обратно на средний уровень.
В приложениях ASP.NET LinqDataSource управляет большей частью данного сложного процесса. Дополнительные сведения см. в обзоре управления веб-сервером LinqDataSource.
Дополнительные ресурсы
Дополнительные сведения о реализации n-уровней приложений, использующих LINQ to SQL, см. в следующих разделах:
В этом модуле описаны шаги по созданию проекта доступа к данным. Вы подключаетесь к реляционной базе данных и создаете запросы на создание, чтение, обновление и удаление (CRUD) с помощью Entity Framework Core (EF Core).