我们希望在我们的WCF服务后面使用NHibernate,但是我们在将子记录删除持久保存到数据库时遇到问题.
我们在服务和客户端之间使用DTO,它们具有IList <>作为子集合类型.当我们使用NHibernate填充DTO时,它将子集合设置为Bag的类型.但是,当通过线路发送时,WCF会将此集合类型更改为Array.
如果我们从数组中删除一条记录并将其传回服务,NHibernate将不会将删除持久保存到数据库中.
有没有我们可以告诉NHibernate(在映射?)删除数组中不存在的任何子记录?
会话对象上有一个名为SaveOrUpdateCopy的函数,在此方案中特别有用.
SaveOrUpdateCopy(或执行相同操作的Merge)将从数据库加载当前实体,并尝试检测已完成的更改(即,集合中的哪些子实体已被删除等).
这是一个博客帖子的链接,详细介绍了SaveOrUpdate副本:http: //www.codinginstinct.com/2009/11/nhibernate-feature-saveorupdatecopy.html
归档时间: |
|
查看次数: |
347 次 |
最近记录: |