NHibernate 2.1.0.4000似乎不喜欢批量插入

Jef*_*eff 4 nhibernate insert batch-file

我在其中一个项目中使用NHibernate 2.1.0.4000.我在cfg文件中将adonet.batch_size设置为100但是我仍然看到insert语句被视为单个语句.更新似乎工作正常.这是怎么回事?

更新:是因为我选择了身份作为主键生成器吗?

<id name="Id" column="Id" unsaved-value="0" type="Int32">
  <generator class ="identity"></generator>
</id>
Run Code Online (Sandbox Code Playgroud)

moo*_*000 11

我不知道该特定NHibernate版本有任何问题.

您是否正在使用native您的实体的ID生成器?因为这会强制每个插入单独发生,所以选择返回生成的ID.这是因为数据库需要生成每个ID.这也可以解释为什么批处理似乎适用于更新.

如果可能,您应该切换到例如hilo策略,或者即使guid您不关心(容易)可读的ID.

法比奥在这里有关于这个话题的有趣帖子.