会话刷新在持久保存未保存的实体时不显示SQL

时间:2013-03-15 08:04:40

标签: nhibernate persistence flush

该方案是以下的(更复杂)版本:

IList<T> ts = Session.QueryOvery<T>().List();

// modify data of multiple objects
ts[0].Foo = "foo0";
ts[1].Foo = "foo1";

using (ITransaction trx = Session.BeginTransaction())
{
   // save only one object
   Session.Save (ts[0]);
   trx.Commit();
}

随着NH的发展,默认情况下这也会保存ts[1],以防止陈旧状态(旁注:我们喜欢控制我们的SQL,所以我们通过设置Session.FlushMode=FlushMode.Never来关闭它。) p>

真正让我感到烦恼的是,即使Show_SQL被激活,也没有为明确通过刷新发送到数据库的ts[1]更新显示sql。

有什么方法可以让那些出现吗?

1 个答案:

答案 0 :(得分:0)

https://stackoverflow.com/a/9403516/1236044中所述,您只需将adonet.batch_size设置值0添加到您的配置中:

<property name="adonet.batch_size">0</property>