代码之家  ›  专栏  ›  技术社区  ›  Eduardo Scoz

NHibernate批量插入不适用于关联?

  •  1
  • Eduardo Scoz  · 技术社区  · 15 年前

    我试图找到更多关于NHibernate如何决定如何将多个插入批处理在一起的信息。显然,如果您有一个简单的相同类型的对象列表,而没有子对象,它就可以工作。

    在我的应用程序中,我在三个表A、B和C之间有一对多的关系:A有多个B,B有多个C。我使用本机生成器生成A的ID,但对于B和C,我只使用复合键,复合键在代码中分配,因此nhibernate只能执行插入。这些看起来工作正常,我可以正确保存所有对象。

    问题是,NHibernate似乎不够聪明,无法尝试先批量插入所有类型A的对象,然后批量插入所有B,最后批量插入所有C。现在,如果有多个对象,它只尝试批处理C类型的对象。

    这听起来正确吗?有什么方法可以改变这种行为吗?

    我的应用程序需要同时添加数百个A、B和C类型的对象,而必须逐个添加是一个很大的性能问题。

    1 回复  |  直到 15 年前
        1
  •  1
  •   Eduardo Scoz    15 年前

    如果有人需要任何帮助,nHibernate确实不能在不同的树中批量插入对象。在我的应用程序中,我最终修改了对象结构以使NHibernate满意。