2009-03-16 4 views
6

Ich habe Fragen und Antworten zu diesem Thema gelesen, aber ich habe noch einige Fragen ohne Antwort.WCF Service aussetzen DTO oder Entität

Wenn ich eine Methode Entity DTO zu konvertieren i in einige Kreis calling Methoden laufen werde (wahrscheinlich durch Fehler in dem Modell verursacht wird), zum Beispiel:

Produkt Klasse eine Eigenschaft Lieferanten hat dass Zeigen Sie auf eine Supplier-Klasse, die eine List-Eigenschaft mit allen gelieferten Produkten enthält. Wenn ich also eine GetProductDTO (Product entity) Methode erstellen, die eine ProductDTO-Klasse zurückgibt, muss ich GetSupplierDTO (Supplier entity) für jedes aufrufen Produkt, aber diese letzte Methode muss GetProductDTO für jedes Produkt in der Liste der Produkte sup aufrufen plied ...

Zusammengefasst suche ich nach einem Muster oder einer Best Practice, um ein EntityModel -> WCF Service -> Prism WPF-Anwendung zu erstellen.

Dank

Antwort

5

Im Allgemeinen für DTO Zwecke wählen Sie einfach möglicherweise keine „Eltern“ Eigenschaften serialisiert werden. Oft sehen Sie DTO mit keine Navigationseigenschaften außer strikt zugeordneten Daten (zum Beispiel, Bestell-Header => Bestell-Detail, aber Sie hätten keine Bestell-Header => Kunde - nur der Schlüssel des Kunden; Sie würde den Kunden separat holen. Bei diesem Ansatz gibt es einen unidirektionalen Pfad zum Serialisieren/Deserialisieren jedes Graphen, und es sollte gut funktionieren.

+0

Ok, das kann die schnelle Lösung sein ... Als nächstes muss ich das Diagramm im Client neu erstellen? Also muss ich auf jeder Seite EF-> DTO und DTO-> EF konvertieren? –

+0

Ja. Das musst du tun. –

+3

Verdammt, es ist nicht die Antwort, auf die ich gewartet habe ... :-) –