在流利的NHibernate中映射组成

时间:2009-08-06 00:30:20

标签: fluent-nhibernate nhibernate-mapping composite

有两个类:产品和图像。

  1. 产品只有一张图片。
  2. 不存在孤儿图像。
  3. 这表示UML中的 组合 关系,这意味着:
    分配Product.Image一个newImage结果如下

    1. 删除旧图片;
    2. 插入新图片;
    3. 将新图片链接到产品。
    4. 现在我需要将它映射到RDBMS表(元代码):

      Product (Id primary key, ImageId int references Image(id))  
      Image(Id primary key, Content)
      

      问题是如何使用Fluent NHibernate来做到这一点 请注意:

      productMap.References(x => x.Image).Cascade.All()  
      

      不适用 - 它不会删除孤儿图像。

      NH也不支持多对一,一对一的全删除孤儿。

      我可能需要像组件一样加入...... 但是在新罕布什尔州。

      更新:FNH用户组中的James建议使用以下语法:

      WithTable("other table", m => 
      {
        m.Component(...);
      });
      

      但没有运气:NotSupportedException:已过时
      它应该在FNH的v1(upcomming)中起作用。

1 个答案:

答案 0 :(得分:1)