全部!我现在正在学习 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 语句中包含多个数据行。
是否可以重写此代码以利用此功能 - 在一次操作中插入所有数据?
更新
好的,现在它真的开始批量发送所有内容了。非常感谢大家!
最佳答案
有一些接近你想要的东西。
如果您设置了 adonet.batch_size
如果将配置属性设置为 0(默认值)以外的任何值,NHibernate 将一次向 SQL Server 发送那么多语句。
关于NHibernate:一次插入多个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2833406/