Ich verwende eine geschichtete Architektur mit dem Entity Framework. Hier ist, was ich kam mit bisher (Alle Projekte Außer UI sind Klassenbibliothek):Entity Framework in geschichteten Architektur
Entities: Die POCO Entities. Völlig beharrlich ignorant. Nein Verweis auf andere Projekte. Erstellt von ADO.Net POCO Entity Generator von Microsoft.
DAL: Die EDMX-Datei (Entity Model) mit der Kontextklasse. (t4 erzeugt). Referenzen:
Entities
BLL: Geschäftslogikschicht. Implementiert Repository-Muster auf dieser Ebene. Referenzen:
Entities
,DAL
. Hier wird die Object bevölkert wird:var ctx=new DAL.MyDBEntities();
UI: Die Präsentationsschicht: ASP.NET-Website. Referenzen:
Entities
,BLL
+ eine Verbindungszeichenfolge Eintrag zu Entitäten in der Konfigurationsdatei (Frage # 2).
Nun meine drei Fragen:
- Ist meine Schicht discintion Ansatz richtig?
In meinem UI, greife ich auf BLL wie folgt:
var customerRep = new BLL.CustomerRepository();
var Customer = customerRep.GetByID(myCustomerID);Das Problem ist, dass ich die Entitäten Verbindungszeichenfolge in meinem UI web.config definieren/app.config sonst bekomme ich eine Laufzeitausnahme. IS definiert die Entitäten Connectionstring in UI verdirbt die Unterscheidung der Ebenen? Oder ist es in einer Multilayer-Architektur akzessorisch?
- Sollte ich zusätzliche Schritte ausführen, um Chage-Tracking, Lazy Loading usw. durchzuführen (mit usw. meine ich die Funktionen, die Entity Framework in einer konventionellen, 1-Projekt, nicht POCO-Code-Generation umfasst)?
Vielen Dank und Entschuldigung für die lange Frage.
sind die einzelnen Ebenen auf separaten Ebenen/Maschinen? erinnere mich an die Ebene! = Ebene. – RPM1984
Nein, es ist mehrschichtig, nicht mehrstufig – Kamyar
Irgendwelche Guides zu Frage Nr.3? – Kamyar