Я использую EF4.3.1 в приложении веб-форм .Net4.0 (не MVC!).
Я склонен использовать шаблон репозитория с интерфейсом IUnitOfWork. Но мне интересно, следую ли я лучшим практикам, тем более что большинство примеров, которым я следовал, основаны на приложениях MVC.
Я скажу, что это всего лишь небольшое веб-приложение, так что это может повлиять на выбор решения.
В настоящее время решение имеет 3 проекта: Модель, Логика и Сайт. Модель содержит объекты codefirst и интерфейс IUnitOfWork. Логика содержит репозитории и сервисный уровень. Очевидно, что сайт содержит веб-сайт, программный код и т. д.
Я не использую сторонние утилиты для инъекций (ninject и т.д.). Я вручную ввожу репозитории с помощью IUnitOfWork, т.е.
общедоступный репозиторий резервирования (IUnitOfWork unitOfWork)
Мне менее ясно, что делать со слоями службы, должен ли IUnitOfWork также существовать в проекте сайта или существовать только в слоях логики и модели.
В настоящее время я внедряю репозиторий и единицу работы в службу, т.е.
public BookingService (IUnitOfWork unitOfWork, репозиторий IBookingRepository, IAppSettings appSettings)
Но это означает, что фиксация (сохранение в базе данных) выполняется на уровне сайта, но мне интересно, следует ли это делать на уровне обслуживания. Это также означает, что, поскольку мой IUnitOfWork объявлен на уровне моей модели, мне также нужна ссылка на модель на моем сайте.
Что я могу сделать лучше? Я делаю что-нибудь правильно? ржу не могу