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