Fluent-NHibernate中的地图合成

Fluent-NHibernate中的地图合成,fluent-nhibernate,nhibernate-mapping,composite,Fluent Nhibernate,Nhibernate Mapping,Composite,有两类:产品和图像 该产品只有一个图像 不能存在孤立图像 这表示UML中的组合关系,意思是: 将Product.Image分配给新映像将导致以下结果 删除旧图像 插入新图像 将新图像链接到产品 现在我需要将其映射到RDBMS表(元代码): 问题是如何使用Fluent NHibernate进行此操作。 请注意: productMap.References(x => x.Image).Cascade.All() 不适用-它不会删除孤立图像 此外,NH不支持多对一、对一的所有删除孤立项 我

有两类:产品和图像

  • 该产品只有一个图像
  • 不能存在孤立图像 这表示UML中的组合关系,意思是:
    将Product.Image分配给新映像将导致以下结果

  • 删除旧图像
  • 插入新图像
  • 将新图像链接到产品 现在我需要将其映射到RDBMS表(元代码):

    问题是如何使用Fluent NHibernate进行此操作。
    请注意:

    productMap.References(x => x.Image).Cascade.All()  
    
    不适用-它不会删除孤立图像

    此外,NH不支持多对一、对一的所有删除孤立项

    我可能需要使用组件连接之类的东西…
    但在英国

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

    WithTable("other table", m => 
    {
      m.Component(...);
    });
    
    但是没有运气:不支持例外:过时

    它应该在FNH的v1(上传)中工作。

    您可以像组件一样映射吗

    使用Fluent进行映射:


    NH医生:

    是的。我可能需要一个组件,但它应该在一个单独的表中。所以我可能需要把join和component混合起来。不知道如何使用FNH来实现这一点。
    WithTable("other table", m => 
    {
      m.Component(...);
    });