NHibernate:一次插入多个项目

NHibernate:一次插入多个项目,nhibernate,Nhibernate,全部!我现在正在学习NHibernate,我想知道是否可以在一次操作中将多个对象保存到数据库中 例如,考虑这个测试代码 private static void SaveTestBillNamesInSession(ISession session, params string[] names) { var bills = from name in names select new Bill

全部!我现在正在学习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语句,这些语句在SQLServer2008中可能是次优的,SQLServer2008允许在一个INSERT语句中包含多个数据行

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

更新
好的,现在它真的开始一批发送所有东西了。多谢大家

有些东西很接近你想要的


如果将
adonet.batch\u size
configuration属性设置为0以外的任何值(默认值),NHibernate将一次向SQL Server发送那么多语句。

您是指“插入联合对象”吗?这仅仅是语法上的糖分,还是它的性能更好?@Paco:如果是单个查询而不是许多独立插入,它的性能会更好。如果所有这些插入都是一个批次的话,那么它几乎是一样的。我同意这个答案,如果你不确定它是否是批次插入,请访问www.nhprof.com并使用Ayende的工具查看NHibernate在封面下对数据库做了什么。+1极好的答案!我已经阅读了整个NHibernate文档,不记得这个细节,但NHibernate不是为批量处理而设计的。谢谢!=)