2009-03-16 10 views
6

Przeczytałem pytania i odpowiedzi na ten temat, ale wciąż mam pytanie bez odpowiedzi.Usługa WCF ujawniająca DTO lub podmiotowi

Jeśli utworzyć metodę konwersji podmiot do DTO będę biegać w niektórych kołowych metod dzwonisz (prawdopodobnie spowodowane przez błędy w modelu), na przykład:

Produktu klasa ma właściwość Dostawca że wskaż klasę Dostawca, która zawiera właściwość List z wszystkimi dostarczonymi produktami. Więc jeśli utworzę metodę GetProductDTO (Product entity), która zwróci klasę ProductDTO, będę musiał zadzwonić pod numer GetSupplierDTO (podmiot dostawcy) dla każdego produkt, ale ta ostatnia metoda musi wywoływać GetProductDTO dla każdego produktu z listy produktów sup plied ...

Podsumowując, szukam wzoru lub najlepszej praktyki, aby utworzyć obiekt EntityModel -> Usługa WCF -> Aplikacja Prism WPF.

Dzięki

Odpowiedz

5

Generalnie, dla celów dto może po prostu zrezygnować z serializacji żadnych „rodzic” właściwości. Często widzisz DTO z nr właściwościami nawigacji, z wyjątkiem ściśle powiązanych danych (na przykład, nagłówek zlecenia => szczegóły zamówienia, ale nie miałbyś nagłówka zlecenia => klienta - tylko klucz klienta; osobno pobrać klienta). Dzięki takiemu podejściu istnieje jednokierunkowa ścieżka do serializowania/deserializacji dowolnego wykresu i powinna działać dobrze.

+0

OK, to może być szybkie rozwiązanie ... po stronie klienta muszę ponownie utworzyć wykres? Więc z każdej strony muszę przekonwertować EF-> DTO i DTO-> EF? –

+0

Tak. To właśnie musisz zrobić. –

+3

Cholera, to nie jest odpowiedź, na którą czekałem ... :-) –