Използвам EF4.3.1 в приложение за уеб формуляри .Net4.0 (не MVC!).
Склонен съм да използвам модела на хранилището с интерфейс IUnitOfWork. Но се чудя дали следвам най-добрите практики, особено след като повечето примери, които съм следвал, са базирани на MVC приложения.
Ще кажа, че това е само малко уеб приложение, така че това може да повлияе на избора на решение.
В момента решението има 3 проекта, модел, логика и сайт. Моделът съдържа обектите codefirst и интерфейса IUnitOfWork. Логиката съдържа хранилища и сервизен слой. Сайтът очевидно съдържа уебсайта, задния код и т.н.
Не използвам помощна програма за инжектиране на трети страни (ninject и т.н.). Ръчно инжектирам хранилища с IUnitOfWork, т.е.
публичен BookingRepository(IUnitOfWork unitOfWork)
По-малко ми е ясно какво да правя със слоевете услуги, трябва ли IUnitOfWork също да съществува в проекта на сайта или да съществува само в слоевете Logic и Model.
В момента инжектирам хранилище и единица работа в услуга, т.е.
публичен BookingService(IUnitOfWork unitOfWork, IBookingRepository хранилище, IAppSettings appSettings)
Но това означава, че ангажирането (запазване в db) се извършва на ниво сайт, но се чудя дали трябва да се извършва в слоя на услугата. Това също означава, че тъй като моят IUnitOfWork е деклариран в моя модел слой, имам нужда от препратка към модела и в моя сайт.
Какво мога да направя по-добре? Правя ли нещо правилно? хаха