相关疑难解决方法(0)

如何关闭NHibernate的自动(脏检查)更新行为?

我刚刚发现,如果我从NHibernate会话中获取一个对象并更改对象的属性,NHibernate会在没有调用的情况下自动更新提交对象Session.Update(myObj)!

我可以看到这可能会有所帮助,但作为默认行为,它似乎很疯狂!

更新:我现在理解持久性无知,所以这种行为现在显然是首选.我会在这里留下这个令人尴尬的问题,希望能帮助其他亵渎用户.

我怎么能阻止这种情况发生?这是默认的NHibernate行为还是来自Fluent NHibernate的AutoPersistenceModel?

如果没有办法阻止这个,我该怎么办?除非我忽略了这一点,否则这种行为似乎会造成一个混乱.

我从2009年8月18日开始使用NHibernate 2.0.1.4和Fluent NHibernate构建

难道这家伙的权利与他的回答

我还读过,重写事件监听器可能是解决这个问题的方法.但是,IDirtyCheckEventListener.OnDirtyCheck在这种情况下不会被调用.有谁知道我需要覆盖哪个监听器?

nhibernate

28
推荐指数
1
解决办法
1万
查看次数

当我从不执行session.Save时,为什么NHibernate会保存对象?

我正在使用NHibernate和Fluent NHibernate.

我有代码,我开始一个事务,然后我进入一个创建几个对象的循环.对于每个对象,我检查某些条件.如果满足这些条件,则在对象上执行session.SaveOrUpdate().在循环结束时,我发出一个提交事务.

我在session.SaveOrUpdate命令上设置了断点,证明它永远不会到达(因为循环中的任何对象都没有满足条件). 然而,当事务提交时,对象被保存!

我正在使用AuditInterceptor并在OnSave方法中设置了断点.它被调用,但堆栈跟踪仅追溯到提交事务的语句.

此时没有任何类型的对象已经对它们执行了SaveOrUpdate,因此级联不能解释它.

为什么NHibernate会保存这些对象?

nhibernate fluent-nhibernate

8
推荐指数
2
解决办法
4967
查看次数

标签 统计

nhibernate ×2

fluent-nhibernate ×1