Уровень разделения объектов базы данных в DAL - PullRequest
1 голос
/ 26 февраля 2010

Нужны общие советы здесь.

Вариант 1. Было бы лучше, чтобы все основные объекты базы данных (скажем, Contact, User, Customer и т. Д. Имели свои общие классы в DAL с вложенными классами для объектов db, которые зависят от основных объектов (ContactAddress, UserEmail и т. Д. ... эти будет иметь несколько значений, поэтому они содержатся в отдельных таблицах).

OR

Вариант 2. Было бы лучше иметь полностью отдельные классы DAL для таких вещей, как ContactAddress и т. Д., И объединить эти элементы на бизнес-уровне?

Дайте мне знать, если я не имею здесь смысла.

Ответы [ 2 ]

1 голос
/ 26 февраля 2010

Я обычно определяю свои объекты на уровне бизнес-логики и выполняю некоторый перевод между объектами DAL и бизнес-объектами. Мои DAL-объекты обычно генерируются автоматически какой-то платформой ORM (например, EF или LinqToSQL). Причина этого в том, что мои объекты уровня бизнес-логики не являются POCO, но также содержат бизнес-логику, тогда как объекты DAL являются чисто poco (хотя они могут быть украшены некоторой логикой ORM).

0 голосов
/ 26 февраля 2010

Обычно помогает обнаружение, если вы помещаете все публичные классы на уровне пространства имен (а не как внутренние классы).

Два приведенных вами примера можно обобщить без вреда:

ContactAddress становится Address

UserEmail становится Email

Таким образом, вы можете использовать их позже, если хотите.

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