我已阅读有关此主题的问题和答案,但我仍然有一些问题没有回答。
如果我创建一个将实体转换为DTO的方法,我将遇到一些循环调用方法(可能是由模型中的错误引起的),例如:
产品类的属性供应商指向包含List属性的Supplier类,其中包含所有提供的产品..因此,如果我创建 GetProductDTO (产品实体)返回ProductDTO类的方法我必须为每个产品调用 GetSupplierDTO(供应商实体),但最后一个方法必须为列表中的每个产品调用GetProductDTO提供的产品......
总之,我正在寻找创建EntityModel的模式或最佳实践 - > WCF服务 - > Prism WPF应用程序。
由于
答案 0 :(得分:5)
通常,对于DTO目的,您可能只是选择不序列化任何“父”属性。通常情况下,除了严格关联数据(例如,order-header =>订单明细,但您没有订单)之外,您会看到DTO的无导航属性header => customer - 只是客户的密钥;您将单独获取客户)。使用这种方法,有一个单向路径来序列化/反序列化任何图形,它应该工作正常。