2009-03-16 13 views
6

He leído preguntas y respuestas sobre este tema, pero todavía tengo algunas preguntas sin respuesta.WCF Service exponiendo DTO o entidad

Si creo un método para convertir a la entidad i DTO encontrará con algunos métodos de llamada circulares (probablemente causadas por errores en el modelo), por ejemplo:

Producto clase tiene una propiedad Proveedor que apunte a una clase Supplier que contenga una propiedad List con todos los productos suministrados. Si creo un GetProductDTO (entidad del producto) método que devuelve una clase ProductDTO tendré que llamar al GetSupplierDTO (entidad proveedora) para cada uno producto, pero este último método debe llamar a GetProductDTO para cada producto en la lista de productos sup plied ...

En resumen, estoy buscando un patrón o práctica recomendada para crear una aplicación EntityModel -> WCF Service -> Prism WPF.

Gracias

Respuesta

5

En general, para los propósitos de DTO simplemente puede optar por no serializar propiedades "padre". A menudo, ve DTO con no propiedades de navegación excepto estrictamente datos asociados (por ejemplo, order-header => order-detail, pero no tendría order-header => customer - solo la clave del cliente; buscaría al cliente por separado). Con este enfoque, hay una ruta unidireccional para serializar/deserializar cualquier gráfico, y debería funcionar bien.

+0

Ok, esta puede ser la solución rápida ... ¿siguiente en el cliente tengo que volver a crear el gráfico? ¿Entonces en cada lado tengo que convertir EF-> DTO y DTO-> EF? –

+0

Sí. Eso es lo que tienes que hacer. –

+3

Maldita sea, no es la respuesta que estaba esperando ... :-) –