如何不担心nhibernate中的子对象(列表)

时间:2011-01-22 14:56:01

标签: c# nhibernate fluent-nhibernate

我有一个名为请求的父对象和一个名为 RequestDate

的子对象

请求包含 RequestDates

列表

我想有映射,所以当我:

  1. 保存父级,可以保存所有孩子
  2. 更新父对象列表(删除一些项目并添加一些新项目)并保存父项目更新子项目
  3. 删除父级将删除所有子级。
  4. 这是可能的。我尝试使用这种语法,但它似乎不起作用:

     HasMany(x => x.RequestDates)
         .AsBag()
         .Inverse()
         .Cascade.AllDeleteOrphan()
         .Fetch.Select()
         .BatchSize(80); 
    

    问题在#2附近。更新项目列表的方法是什么。我调用Remove()来删除一些然后调用Add()来添加新的

1 个答案:

答案 0 :(得分:4)

您已将收藏集配置为Inverse,这意味着“另一方”(即RequestDate中的References)负责管理关系。

因此,您需要在RequestDate中设置对Request的引用。

如果您没有此类媒体资源,请删除Inverse()电话。但是NH将使用NULL进行插入,然后进行UPDATE,这可能不是您想要的。