【发布时间】:2010-10-04 19:08:47
【问题描述】:
我有一个创建多个新实体的过程。我尝试将它们添加到集合中(对它们执行 .Persist()),然后当我的集合准备就绪时,尝试提交事务。
我已检查以确保在调用 Transaction.Commit() 之前没有执行任何数据库调用,但是一旦调用 commit,我就会看到正在为每个单独的实体进行调用。
有没有办法一次保存所有相同类型的实体?
【问题讨论】:
标签: c# nhibernate fluent
我有一个创建多个新实体的过程。我尝试将它们添加到集合中(对它们执行 .Persist()),然后当我的集合准备就绪时,尝试提交事务。
我已检查以确保在调用 Transaction.Commit() 之前没有执行任何数据库调用,但是一旦调用 commit,我就会看到正在为每个单独的实体进行调用。
有没有办法一次保存所有相同类型的实体?
【问题讨论】:
标签: c# nhibernate fluent
您是否设置了批量大小?
http://ayende.com/Blog/archive/2006/09/16/BatchingSupportInNHibernate.aspx
在您的流利配置中尝试设置
.AdoNetBatchSize(10)
http://fluentnhibernate.org/api/FluentNHibernate.Cfg.Db/PersistenceConfiguration%602.htm
希望这对你有帮助。
【讨论】:
如果您使用 Identity 作为主键,也适用于插入 Nhibernate 将无法批量插入。
【讨论】: