【问题标题】:NHibernate 2.1.0.4000 doesn't seem to like batch insertNHibernate 2.1.0.4000 似乎不喜欢批量插入
【发布时间】:2009-07-20 07:34:01
【问题描述】:

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

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

<id name="Id" column="Id" unsaved-value="0" type="Int32">
  <generator class ="identity"></generator>
</id>

【问题讨论】:

标签: nhibernate batch-file insert


【解决方案1】:

我不知道那个特定的 NHibernate 版本有任何问题。

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

如果可能,您应该切换到例如hilo 策略,甚至 guid 如果您不关心(容易)可读的 ID。

法比奥在here 上有关于这个主题的有趣帖子。

【讨论】:

  • 是的,我使用 SQL Server 2005 标识(生成的 int)作为主键。这就解释了为什么。谢谢。
  • 我正在使用现有数据库,因此不太可能更改 id。
猜你喜欢
  • 2011-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-15
  • 1970-01-01
相关资源
最近更新 更多