【发布时间】:2012-11-19 02:19:18
【问题描述】:
我是 NHibernate 的新手(坦率地说是 DDD 概念),所以我的问题可能很简单或无关紧要,但如果有人帮助我解决我的困惑,我将非常感激。
在我的应用程序中,我使用 DDD 和 NHibernate 作为 ORM。
使用简单的实体它可以正常工作,但现在我处于我的实体变得非常复杂的阶段(所以实体 A 包含实体 B 和实体 C 的数组;每个实体 C 包含 D 和一些其他参数等等...)
我的客户端应用程序正在通过 Internet 与 WCF 服务(与 db 通信)通信,因此速度(有效负载大小很重要)。在少数情况下,我必须将这些复杂 DTO 的数组从服务发送到客户端,然后客户端更新 A 中的少量值并将其发送回服务器进行保存/更新。
为了减少有效负载,我试图在从服务向客户端发送数据时,通过在我的映射器(我没有使用自动映射器等)中取消它们来从我的 DTO 中的 B 和 C 实体中删除未使用的属性值。
现在,当谈到将实体保存回 db 时,我应该怎么做?如果我在 B 和 C 的几个变量中传回具有空值的实体 A(我已在映射器中手动取消),NHibernate 将在我保存 A 时尝试保存 B 和 C。我只想保存 A,并且要求 NHibernate 不要从 B 或 C 中保存任何内容。
任何帮助,都是对我的祝福。
提前致谢, D
【问题讨论】:
标签: nhibernate domain-driven-design