На каком уровне я должен разместить свой репозиторий?

Сценарий

Уровень доступа к данным

  • Созданные EF файлы .edmx и классы
  • Используются только для доступа к базе данных SQL и передачи данных на бизнес-уровень

Бизнес-уровень

  • Бизнес-объекты: содержат всю логику проверки, отмеченную атрибутом [DataContract] , чтобы их можно было передать в качестве параметров моей веб-службе

Проблема

Я хочу использовать шаблон репозитория с этим подходом. Репозиторий будет содержать все операции CRUD, которые должны выполняться с базой данных, принимать и возвращать сущности бизнес-уровня. Это означает, что репозиторий будет находиться на бизнес-уровне, потому что только бизнес-уровень может ссылаться на уровень данных, а не наоборот. Я также планирую использовать сборку уровня данных в других проектах, поэтому я хотел бы иметь репозиторий на уровне данных, а не на бизнес-уровне (который характерен для этого проекта).
Что вы порекомендуете? Должен ли я хранить репозиторий на бизнес-уровне и писать по одному для каждого отдельного бизнес-уровня? Или я должен хранить репозиторий внутри уровня данных , не принимая и не возвращая бизнес-объекты.
Или, в качестве альтернативы, может ли кто-нибудь порекомендовать другой подход, который позволил бы создать более логичную и масштабируемую архитектуру?

Спасибо, что прочитали, ждем ответы

7
задан scripni 30 August 2010 в 10:27
поделиться

1 ответ

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

Репозиторий может и должен принимать и возвращать DTO (Data Transfer Objects) — это простые объекты, не имеющие собственного поведения и используемые для передачи данных между слоями.

Я бы поместил его между DAL и BLL и использовал его только для доступа к данным из BLL.

7
ответ дан 7 December 2019 в 01:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: