我在其中一个项目中使用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>
答案 0 :(得分:11)
我不知道该特定NHibernate版本有任何问题。
您是否使用native
作为实体的ID生成器?因为这会强制每个插入单独发生,所以选择返回生成的ID。这是因为数据库需要生成每个ID。这也可以解释为什么批处理似乎适用于更新。
如果可能,您应该切换到例如hilo
策略,如果您不关心(易于)可读的ID,甚至是guid
。
法比奥有关于这个话题的有趣帖子here。