【问题标题】:Saving changes to an object graph in NHibernate after mapping from DTO to domain object从 DTO 映射到域对象后,将更改保存到 NHibernate 中的对象图
【发布时间】:2011-12-26 17:46:01
【问题描述】:

我目前正在设计的应用程序中有以下层:

MSSQL

在加载其托管网页 (EditOrder.aspx?id=104) 时,javascript 应用程序调用 WCF 服务以通过其 id 获取订单。用户可以使用 UI 来修改 Order 的属性并添加/修改/删除子 OrderLines(一个订单有一个 OrderLines 的集合)。

当用户按下保存按钮时,javascript 应用程序将带有 OrderLine 对象的 Order 和数组作为 JSON 发布到 WCF 服务。

计划是让 WCF 服务使用 AutoMapper 在域对象和 DTO 之间进行映射。当浏览器发布的 DTO 被 WCF 服务接收到后,会映射到对应的 Order 域对象,包括其子 OrderLines。

接下来,它将被传递到存储库中。

现在我的问题是:当我要求 NHibernate 更新我的订单时,是否可以让 NHibernate 负责识别任何已删除/插入/修改的 OrderLineItems?如果是这样,让这项工作发挥作用涉及什么?

更新:这是 NHibernate Merge() 方法的作用吗?

谢谢!

【问题讨论】:

    标签: wcf nhibernate automapper dto change-tracking


    【解决方案1】:

    没有。 您必须避免的问题是您在订单和订单行中引用的静态数据。因此,如果您的订单行引用了一些静态产品数据,您必须通过组装您的域订单行从 dto 建立一个新的订单行。 Dto 将成为您与外部世界的 Web 服务边界,通常是比您的业务领域模型更扁平的模型。 dto 的通信边界是应用程序层或浏览器中的 json。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-15
      • 2022-10-22
      • 2011-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多