级联组件集合中的项目

时间:2010-05-18 21:30:07

标签: nhibernate fluent-nhibernate nhibernate-mapping components

我有一个包含集合的组件。如果我将集合标记为Inverse,我似乎无法让NHibernate持久保存集合中的项目。如果我在集合上没有Inverse,它们会持续存在,但是我得到一个插入,然后是一个更新语句。

我的映射是:

m => m.Component(x => x.Configuration, c =>
{
  c.HasMany(x => x.ObjectiveTitleTemplates)
    .Access.ReadOnlyPropertyThroughCamelCaseField(Prefix.Underscore)
    .AsSet()
    //.Inverse()
    .KeyColumns.Add("ObjectiveProcessInstanceId")
    .Cascade.AllDeleteOrphan();                                                               
});

有没有办法让它能够将集合标记为Inverse,从而避免额外的插入?

谢谢!

1 个答案:

答案 0 :(得分:0)

将集合映射为反向是不够的。你必须:

  • 从“多方”创建参考
  • 向集合中添加元素时更新

当你使用Inverse时,NHibernate不会保持这方面的关系。