в проектах, которые я разрабатывал, я считаю целесообразным создание DL даже при использовании Linq2Sql для доступа к данным.
Моя основная причина в том, что для многих вызовов DL, чтобы получить один или несколько бизнес-объектов из БД, фактически требуется более одного вызова базы данных, особенно при реализации стратегии активной загрузки. и при сохранении бизнес-объекта, данные которого хранятся в нескольких таблицах, транзакция может быть установлена для нескольких обращений к базе данных.
Бизнес-уровень не должен знать это; он должен иметь возможность сделать один вызов для DL и оставить его для DL, чтобы выполнять все утомительные запросы и сопоставление данных в бизнес-объекты.