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