2011-03-06 67 views
11

在我的nhibenate会话中,我使用AutoMapper映射对象,并在afterMap操作中创建对象的新实例,因为我从属性比较的数据库中提取对象。 因此,AutoMapper使用相同的ID创建一个对象的两个实例。 当我尝试提交会话时,出现错误,必须使用相同的ID进行响应。从NHibernate会话断开对象

所以我想断开属性比较后提取的对象。 之后,我可以提交会话

我该怎么做?

谢谢!

回答

13

您可以使用session.Evict(persistentObject)从会话中清除持久对象。这将从第一级缓存中删除对象,从而允许您刷新会话。

+0

是否有可能从所有会话中删除它? – Joel 2014-04-11 11:34:50

+0

除非你真的做得非常时髦,否则你的物体最多只能连接一次:水合物的那一次 – mookid8000 2014-04-11 12:33:30

+0

我真的很希望那是真的。我有一些遗留代码,做的更好玩,所以我遇到了这个异常,我希望会有一些骇人的解决方法,但是哦... – Joel 2014-04-11 13:23:21