在从DTO映射到域对象后,将更改保存到NHibernate中的对象图

时间:2011-12-26 17:46:02

标签: wcf nhibernate automapper dto change-tracking

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

MSSQL< NHibernate<存储库< WCF<的Javascript

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

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

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

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

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

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

谢谢!

1 个答案:

答案 0 :(得分:0)

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