该方案是以下的(更复杂)版本:
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。
有什么方法可以让那些出现吗?
答案 0 :(得分:0)
如https://stackoverflow.com/a/9403516/1236044中所述,您只需将adonet.batch_size
设置值0
添加到您的配置中:
<property name="adonet.batch_size">0</property>