NHibernate:一次插入多个项目

时间:2010-05-14 10:31:03

标签: nhibernate

一切!我现在正在学习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语句中包含多个数据行。

是否可以重写此代码以使用此功能 - 在一次操作中插入所有数据?

更新 好的,现在它真的开始在一个批次中发送所有内容。非常感谢所有人!

1 个答案:

答案 0 :(得分:9)

有一些你想要的东西。

如果将adonet.batch_size配置属性设置为0以外的任何值(默认值),NHibernate会立即向SQL Server发送这么多语句。