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

Nhibernate 会话刷新在持久化未保存的实体时不显示SQL,nhibernate,persistence,flush,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.Sav

该场景是以下内容的(更复杂)版本:

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();
}
IList ts=Session.QueryOvery().List();
//修改多个对象的数据
ts[0].Foo=“foo0”;
ts[1].Foo=“foo1”;
使用(ITransaction trx=Session.BeginTransaction())
{
//只保存一个对象
Session.Save(ts[0]);
提交();
}
随着NH的发展,默认情况下,这也将保存
ts[1]
,以防止过时状态(旁注:我们喜欢对SQL的控制,所以我们通过设置
Session.FlushMode=FlushMode.Never
)来关闭它)

真正让我烦恼的是,即使激活了
Show\u SQL
,但对于肯定由flush发送到数据库的
ts[1]
更新,也不会显示任何SQL

有什么方法可以让它们显示出来吗?

如中所述,您只需将值为
0的
adonet.batch\u size
设置添加到配置中:

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

这可能会引起兴趣:谢谢,jbl。成功了。你能帮我把这个贴出来作为答案吗?这样我就可以标记它了?