NHibernate:一次插入多个项目

Gar*_*art 4 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);
    }
Run Code Online (Sandbox Code Playgroud)

此循环在此处生成许多INSERT语句,这些语句在SQL Server 2008中可能是次优的,它允许在一个INSERT语句中包含多个数据行.

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

更新 确定,现在它真正开始在一个批次中发送所有内容.非常感谢大家!

Die*_*hon 9

有你想要的东西.

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