通过NHibernate和WCF保留子项删除

Mat*_*att 0 nhibernate wcf

我们希望在我们的WCF服务后面使用NHibernate,但是我们在将子记录删除持久保存到数据库时遇到问题.

我们在服务和客户端之间使用DTO,它们具有IList <>作为子集合类型.当我们使用NHibernate填充DTO时,它将子集合设置为Bag的类型.但是,当通过线路发送时,WCF会将此集合类型更改为Array.

如果我们从数组中删除一条记录并将其传回服务,NHibernate将不会将删除持久保存到数据库中.

有没有我们可以告诉NHibernate(在映射?)删除数组中不存在的任何子记录?

Tor*_*kel 5

会话对象上有一个名为SaveOrUpdateCopy的函数,在此方案中特别有用.

SaveOrUpdateCopy(或执行相同操作的Merge)将从数据库加载当前实体,并尝试检测已完成的更改(即,集合中的哪些子实体已被删除等).

这是一个博客帖子的链接,详细介绍了SaveOrUpdate副本:http: //www.codinginstinct.com/2009/11/nhibernate-feature-saveorupdatecopy.html