代码之家  ›  专栏  ›  技术社区  ›  Mauro Destro

WCF服务向或实体公开DTO

  •  6
  • Mauro Destro  · 技术社区  · 17 年前

    我读过关于这个话题的问题和答案,但我还有一些没有答案的问题。

    如果我创建一个方法将实体转换为DTO,我会遇到一些循环调用方法(可能是由模型中的错误引起的),例如:

    产品 类具有属性 供应商 指向一个包含所有提供产品的列表属性的供应商类。所以如果我创建一个 GetProductDTO(产品实体) 将ProductDTO返回到类的方法,我将不得不调用 获取供应商实体 对于每个产品,但最后一个方法必须为提供的产品列表中的每个产品调用GetProductDTO…

    总之,我正在寻找一个模式或最佳实践来创建EntityModel->WCF服务->Prism WPF应用程序。

    谢谢

    1 回复  |  直到 17 年前
        1
  •  5
  •   Marc Gravell    17 年前

    一般来说,为了DTO的目的,您可以选择不序列化任何“父”属性。通常,您会看到DTO 导航属性,除了 严格地 关联数据(例如,order header=>订单详细信息,但您没有order header=>客户-只有客户的密钥;您将单独获取客户)。使用这种方法,有一个单向的路径来序列化/反序列化任何图,它应该可以正常工作。