我有类似的东西

var productList = order.Products.TolIst();


然后,我遍历productList并使用更新每个产品

session.SaveOrUpdate(product);


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

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

谢谢

最佳答案

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

问题摘要:


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


解决方案:


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

关于c# - nhibernate以先前状态创建,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14624244/

10-12 23:30