nhibernate“多键”映射 - 不同实体的银行帐户/地址数据

时间:2013-07-04 14:23:56

标签: nhibernate database-design data-modeling

我正在寻找使用nhibernate建模以下情况的正确方法:

银行帐户和/或地址数据云链接到以下实体

  • 客户
  • 合同
  • ,权利要求 * ...

完全不同,因此云与普通父母无关。

目前,我唯一的解决方案是为每个星座使用唯一的链接表:

  • bank_to_customer
  • bank_to_contract
  • ...
  • add_to_customer
  • add_to_contract

银行已经映射了像

这样的集合
  • 客户
  • 合同
  • ...

地址具有相同的集合,如

  • 客户
  • 合同
  • ...

我很难解决搜索银行帐户或街道的要求,并显示哪些实体与结果集相关联。

" abc street"在adresse查询中,有必要查询所有"添加_"链接表四次以识别所有链接......

或许有更好的解决方案或问题建模?

感谢任何建议

2 个答案:

答案 0 :(得分:0)

也许任何/多对任何地图都可以解决问题

http://jzo001.wordpress.com/2013/01/21/nhibernate-many-to-any-mapping-composite-identifier-unidirectional-relationship/

但它与继承相结合

答案 1 :(得分:0)

使用带有接口的多对多

interface IHaveContacts
{
    ICollection<Contact> Contacts { get; }
}

class Contact
{
    ICollection<IHaveContacts> EntitiesWithContacts { get; private set; }
}
不幸的是,它似乎不支持FNH。单独使用hbm.xml进行此映射,或在将映射添加到配置之前编辑映射。