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