Ich verwende EF4.3.1 in einer .Net4.0 Web Forms (nicht MVC!) - Anwendung.IUnitOfWork Anleitung - Best Practice
Ich neige dazu, das Repository-Muster mit einer IUnitOfWork-Schnittstelle zu verwenden. Aber ich frage mich, ob ich Best Practices befolge, zumal die meisten Beispiele, die ich befolgt habe, auf MVC-Apps basieren.
Ich werde sagen, es ist nur eine kleine Web-App, so dass die Lösung Entscheidungen beeinflussen kann.
Die Lösung hat derzeit 3 Projekte, Model, Logic und Site. Model enthält die Codefirst-Entitäten und die IUnitOfWork-Schnittstelle. Logik enthält die Repositories und die Serviceebene. Seite enthält offensichtlich die Website, Codebehind, etc.
Ich verwende keine inject-Dienstprogramm von Drittanbietern (ninject, etc). Ich spritze manuell Repositories mit einem IUnitOfWork dh
öffentlichen BookingRepository (IUnitOfWork unitOfWork)
Ich bin weniger klar, was mit den Dienstschichten zu tun, sollte die IUnitOfWork auch im Site-Projekt exisit oder existiert nur in der Logik- und Modellschichten.
Derzeit spritze ich ein Repository und eine Arbeitseinheit in einen Dienst, dh
öffentlichen Reservierungsservice (IUnitOfWork unitOfWork, IBookingRepository Repository, IAppSettings appSettings)
Das bedeutet aber, die commiting (zu db speichern) erfolgt auf der Site-Ebene, aber ich frage mich, ob es in der Service-Schicht getan werden sollte. Es bedeutet auch, dass, da mein IUnitOfWork in meiner Modellschicht deklariert ist, ich auch einen Verweis auf Model in meiner Site benötige.
Was kann ich besser machen? Mache ich etwas richtig? lol
IUnitOfWork sollte nicht in Repository übergeben werden, nur in Betrieb genommen. Siehe Beispiel hier http://stackoverflow.com/questions/9808577/multiple-generic-repositories-in-unitofwork/9809550#9809550 –