2009-08-26 22 views
1

Ich schreibe eine neue Anwendung mit dem Entity Framework.Best Practices für Entity Framework?

Wo würde der EF liegen? Ich denke derzeit darüber nach, es in einer DataAccess-Assembly zu isolieren, die eine Reihe von Repositorys verfügbar macht (die im Wesentlichen EF umbrechen).

Ich würde dann meine eigenen Domain-Objekte erstellen und sie an das Repository übergeben, das sie auf eine EntityFramework-Entity (die ich als DAO behandle) abbildet.

Das Problem mit diesem Ansatz ist die Menge der Zuordnung, die ich tun müsste, selbst für ein kleineres Domänenmodell.

Ich mag auch die Repository.GetAll(Func<TDomainObj, bool> filter) Ansatz eine gefilterte Anzahl der Elemente abzurufen, jedoch würde ich brauche die Funktion zu konvertieren, anstatt eine DAO zu nehmen:

Func<**TDomainObj**, bool> filter --->

Func<**TEntityFrameworkObj**, bool> filter 

Nicht sicher Wie könnte ich das tun? Wenn ich einfach Func<TEntityFrameworkObj, bool> im Repository zulassen würde, müsste der Anrufer über System.Data.Objects wissen.

ich, ich sollte nur Paar die App EF zu denken, bin ab und nutzen ihre System.Data.Objects als mein Modell ....

Freuen Sie sich auf Ihre Anregungen/Kommentare,

David

Antwort

0

Wir kapseln EF hinter einer Service-Schicht. Die Service-Schicht macht DTO-Objekte verfügbar. Wir ordnen die EF-Objekte DTO-Objekten im Code zu.

In einigen Fällen machen wir eine Get-by-Vorlage, die ähnlich zu dem ist, was Sie tun. Wo wir ein Objekt, zum Beispiel einen Kunden, einsenden und alle Kunden zurückrufen, die wie das von uns gesendete aussehen.

Verwandte Themen