EF 4.1 Code First - Какой шаблон мне следует использовать? - PullRequest
5 голосов
/ 26 июля 2011

Я изучаю EF Code First, и я немного борюсь с тем, какие шаблоны использовать в моем приложении.Я прочитал много противоречивых предположений и доводов, некоторые из которых утверждают, что вы должны использовать шаблон Repository, в то время как другие говорят, что это избыточно, и я склонен согласиться.

Вот мой деликат:

Предположим, ясоздание веб-службы REST, которая позволит мне управлять клиентами.Эта услуга позволит мне добавлять клиентов, удалять клиентов, редактировать клиентов и находить клиентов.

Должен ли я:

A.) Мой вопрос сводится к тому, куда должна идти моя бизнес-логика.Должен ли я иметь класс CustomerManager, который предоставляет методы Add, Edit, Delete и Find, которые принимают сущность Customer?Должна ли моя логика валидации идти этими методами?

B.) Должен ли я использовать стиль разработки Active Record, когда моя сущность Customer будет иметь методы Save (), Delete () и Find () для нее со всеми валидациямивход в систему выполняется внутри класса Customer?

C.) Должен ли я делать гибридный тип, в котором простая логика проверки находится на самом объекте.Это можно сделать с помощью атрибуции кода.Я также мог бы иметь простой метод сохранения объекта.Затем я мог бы выполнить сложную бизнес-логику проверки, delete (), find () и сохранения нескольких объектов в классе CustomerManager?

Я склоняюсь к варианту C. В прошлом я обычно использовал Manager/ Классы обслуживания, сохраняющие мои сущности довольно простыми.Тем не менее, поскольку код сначала выполняет проверку свойств сущностей на уровне сущностей, кажется, что, возможно, все простые проверки сущностей должны идти туда.

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

1 Ответ

1 голос
/ 29 сентября 2011

EF 4.1 Код сначала объединяет единицу работы с шаблоном отображения данных.

Итак, я бы не рекомендовал использовать шаблон активной записи.

Шаблон репозитория с структурой сущностей является распространенным решением. Если вам нужна простая логика проверки, вы можете использовать DataAnnotations, которая хорошо работает с платформой сущностей.

Вот простой пример реализации шаблона хранилища с EF:

http://www.efekaptan.com/repository-pattern-with-entity-framework-code-first-4.1

...