我有类似的东西
var productList = order.Products.TolIst();
我遍历productList并使用
更新每个产品session.SaveOrUpdate(product);
但问题是, OnFlushDirty 函数中产品的先前状态为null(这是有意义的)。
无论如何管理/复制/注入以前的状态?
由于
答案 0 :(得分:2)
这可能与分离的对象更新有关。试着阅读这个非常相似的故事:http://jamesfitzsimons.com/?p=152
问题摘要:
...在调查中我们意识到previousState参数 传递给我们的拦截器的onFlushDirty方法是null。 ...
解决方案:
解决方案是使用merge()方法(NHibernate 2.0中的新方法)。 Merge()检查第一级缓存以查看是否有对象 给定的标识符先前已加载。如果是这样的话就加载它 对象超出第一级缓存并使用更新它的属性 分离的对象。这意味着会话现在能够跟踪 对对象所做的更改,以便在刷新时发生 previousState不再为null。