【问题标题】:NHibernate saving implicitly?NHibernate 隐式保存?
【发布时间】:2012-07-17 16:06:38
【问题描述】:

我在使用 NHibernate 时遇到了一些奇怪的行为,我不知道我是否只是误解了会话和事务的工作方式。

我正在打开一个会话,为该会话启动一个事务。然后我使用会话检索对象集合,以某种方式操作对象,然后提交事务。在此过程中,我没有在会话上调用 Save 或 Update,但它隐式保存了会话中对象的状态。

这是适当的行为吗?我正在为我的会话使用包装器,这就是它总是打开并提交事务的原因。

【问题讨论】:

  • 我认为删除提交会阻止它们被保存?可能重复:stackoverflow.com/questions/1380581/…
  • 是的,刚刚对此进行了测试,删除提交会阻止项目被保存。奇怪的是,虽然我在另一个对象上进行了测试,但它的行为方式并不相同......
  • @AdamHouldsworth 是的,你是对的......哦!我确实看到了那篇文章,但只阅读了 SaveOrUpdate,我以为他在谈论与我所经历的不同的事情。

标签: c# nhibernate


【解决方案1】:

看看 Flush、FlushMode 和 IsDirty。这在您操作集合时很常见。

如果您更改集合中的项目或将指针从一个集合更改为新集合,则 Nhibernate 会在刷新时通过 IsDirty 进行扫描。

【讨论】:

    猜你喜欢
    • 2010-11-09
    • 2011-01-13
    • 2011-12-08
    • 2010-10-06
    • 1970-01-01
    • 2012-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多