Frage

So implementieren Sie das Repository -Muster mit linqtoentities So implementieren Sie die Schnittstelle

War es hilfreich?

Lösung

ich wie folgt vor:

Ein Service-Layer enthält meine Business-Objekte. Es übergeben wird das Repository über eine Inversion of Control (Castle Windor ist meine übliche Wahl). Das Repository ist für die Zuordnung zwischen den Business-Objekten und meinen Entity Framework-Objekten.

Die Vorteile: Sie haben keine Probleme mit Objektzustand oder den Kontext der EF Objekte, da sie nur auf der Repository-Seite während der Datenmanipulation wird geladen. Dies erleichtert die Situation, wenn sie zu WCF / Web-Dienste übergeben.

Die Nachteile: Sie sind nur einige der Tracking-Funktionalität von Entity Framework zu verlieren, müssen Sie manuell das Datenobjekt (ef-Objekte) laden, wenn möglicherweise manuell Parallelität Prüfungen erforderlich (über einen Zeitstempel auf dem Business-Objekt zum Beispiel) .

Aber im Allgemeinen ziehe ich diese Lösung, weil es möglich ist, später das Repository zu ändern. Es erlaubt mir, verschiedene Repositories (zum Beispiel meines Benutzerobjekt ist tatsächlich die ASPNetAuthenticationRepository anstelle des EntityFrameworkRepository verwenden), aber für meinen Service-Layer ist es transparent.

Im Hinblick auf die Schnittstelle, würde ich die Business-Objekte aus der Dienstschicht als Parameterobjekte verwendet und nicht jene EF Objekte aus der Repository-Schicht lassen. Hoffe, das hilft

Andere Tipps

Ive fast wie dies mit Ausnahme des „Castle Windor“ stuff. Werfen Sie einen Blick auf openticket.codeplex.com

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top