【问题标题】:Session Flush not Showing SQL when persisting unsaved entities持久化未保存的实体时,会话刷新不显示 SQL
【发布时间】:2013-03-03 20:56:29
【问题描述】:

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

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 将其关闭)。

真正让我烦恼的是,即使Show_SQL 被激活,也没有为ts[1] 更新显示任何sql,这些更新肯定是由flush 发送到数据库的。

有什么办法可以让这些显示出来吗?

【问题讨论】:

标签: nhibernate persistence flush


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多