一切!我现在正在学习NHibernate,我想知道是否可以在一次操作中将多个对象保存到数据库。
例如,请考虑此测试代码
private static void SaveTestBillNamesInSession(ISession session, params string[] names)
{
var bills = from name in names
select new Bill
{
Name = name,
DateRegistered = DateTime.Now,
};
foreach (var bill in bills)
session.SaveOrUpdate(bill);
}
此循环在此处生成许多INSERT语句,这些语句在SQL Server 2008中可能是次优的,它允许在一个INSERT语句中包含多个数据行。
是否可以重写此代码以使用此功能 - 在一次操作中插入所有数据?
更新 好的,现在它真的开始在一个批次中发送所有内容。非常感谢所有人!
答案 0 :(得分:9)
有一些你想要的东西。
如果将adonet.batch_size
配置属性设置为0以外的任何值(默认值),NHibernate会立即向SQL Server发送这么多语句。