[DataContract]
, чтобы их можно было передать в качестве параметров моей веб-службе
Я хочу использовать шаблон репозитория с этим подходом. Репозиторий будет содержать все операции CRUD, которые должны выполняться с базой данных, принимать и возвращать сущности бизнес-уровня. Это означает, что репозиторий будет находиться на бизнес-уровне, потому что только бизнес-уровень может ссылаться на уровень данных, а не наоборот. Я также планирую использовать сборку уровня данных в других проектах, поэтому я хотел бы иметь репозиторий на уровне данных, а не на бизнес-уровне (который характерен для этого проекта).
Что вы порекомендуете? Должен ли я хранить репозиторий на бизнес-уровне и писать по одному для каждого отдельного бизнес-уровня? Или я должен хранить репозиторий внутри уровня данных , не принимая и не возвращая бизнес-объекты.
Или, в качестве альтернативы, может ли кто-нибудь порекомендовать другой подход, который позволил бы создать более логичную и масштабируемую архитектуру?
Спасибо, что прочитали, ждем ответы
Репозиторий — это абстракция над уровнем данных, позволяющая вашему приложению игнорировать постоянство. Он должен иметь дело только с доступом к данным и ничем более. В нем не должно быть никакой бизнес-логики.
Репозиторий может и должен принимать и возвращать DTO (Data Transfer Objects) — это простые объекты, не имеющие собственного поведения и используемые для передачи данных между слоями.
Я бы поместил его между DAL и BLL и использовал его только для доступа к данным из BLL.