nhibernate用以前的状态创建

时间:2013-01-31 11:06:32

标签: c# .net nhibernate clone interceptor

我有类似的东西

var productList = order.Products.TolIst();

我遍历productList并使用

更新每个产品
session.SaveOrUpdate(product);

但问题是, OnFlushDirty 函数中产品的先前状态为null(这是有意义的)。

无论如何管理/复制/注入以前的状态?

由于

1 个答案:

答案 0 :(得分:2)

这可能与分离的对象更新有关。试着阅读这个非常相似的故事:http://jamesfitzsimons.com/?p=152

问题摘要:

  

...在调查中我们意识到previousState参数   传递给我们的拦截器的onFlushDirty方法是null。 ...

解决方案:

  

解决方案是使用merge()方法(NHibernate 2.0中的新方法)。   Merge()检查第一级缓存以查看是否有对象   给定的标识符先前已加载。如果是这样的话就加载它   对象超出第一级缓存并使用更新它的属性   分离的对象。这意味着会话现在能够跟踪   对对象所做的更改,以便在刷新时发生   previousState不再为null。