NHibernate:一次插入多个项目

标签 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 语句中包含多个数据行。

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

更新
好的,现在它真的开始批量发送所有内容了。非常感谢大家!

最佳答案

有一些接近你想要的东西。

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

关于NHibernate:一次插入多个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2833406/

相关文章:

sql-server - nHibernate 主细节删除

nhibernate - 我可以有选择地关闭带有 NHibernate 的延迟加载吗?

nhibernate - 为什么 Entity Framework 不支持 ODBC?

c# - ORM 存储库模式

c# - FluentNhibernate - HasMany 与复合键的关系

c# - 使用 nhibernate 查询字节属性会导致无效的转换错误

c# - 在 NHibernate 的查询中使用 OR 子句

asp.net-mvc - 关于高流量网站缓存的问题

c# - NHibernate 单元测试模拟/内存数据库

NHibernate 'Write Only' 集合,是否有这样的东西?