При использовании LINQ мы будем использовать 3 слоя? - PullRequest
2 голосов
/ 02 марта 2010

При использовании LINQ to SQL или Entity Framework, нам нужно разделить приложение на 3 уровня? BLL, DAL, Interface?

Ответы [ 3 ]

4 голосов
/ 02 марта 2010

Делай то, что работает для тебя . Создание свадебного сайта с несколькими ссылками и получение 5 страниц контента из базы данных? Более 1 слоя кажется огромным излишним. С другой стороны, для очень сложного или большого проекта: я думаю, что вы хотели бы хоть какой-то степени разделения, потому что это экономит время, путаницу и здравомыслие.

Имеет значение, над чем вы работаете и сколько требуется разделения. В конечном итоге это то, что вы и ваша команда предпочитаете . Нет правильного ответа, это то, что соответствует ситуации.

2 голосов
/ 03 марта 2010

в проектах, которые я разрабатывал, я считаю целесообразным создание DL даже при использовании Linq2Sql для доступа к данным.

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

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

0 голосов
/ 06 марта 2010

Я с @ MikeJacobs.

На самом деле я написал библиотеку LINQ2SQL, которая абстрагирует ВСЕ содержимое DataContext и все .Insert (), .Execute () и .SubmitChanges ().

Очень приятно просто абстрагироваться. В LINQ2SQL вы все еще зависите от всех своих уровней, которые знают о сущностях LINQ2SQL, но мои верхние уровни очень редко отправляют сложные лямбды в DAL, большинство из которых делается в DAL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...