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

nhibernate“;“多键”;映射-不同实体的银行账户/地址数据,nhibernate,database-design,data-modeling,Nhibernate,Database Design,Data Modeling,我正在寻找用nhibernate模拟以下情况的正确方法: 银行账户和/或地址数据必须链接到以下实体 顾客 合同 主张 * 它们完全不同,因此它不会链接到公共父级 目前,我唯一的解决方案是为每个星座使用唯一的链路表: 银行对客户 银行对银行合同 将\添加到\客户 在合同中添加 及 银行已经映射了像这样的集合 顾客 合同 地址有相等的集合,如 顾客 合同 我有一种不好的感觉来解决搜索银行账户或街道并显示哪些实体与结果集链接的要求 也许ADRESE查询中“abc street”的

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

银行账户和/或地址数据必须链接到以下实体

  • 顾客
  • 合同
  • 主张 *
它们完全不同,因此它不会链接到公共父级

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

  • 银行对客户
  • 银行对银行合同
  • 将\添加到\客户
  • 在合同中添加

银行已经映射了像这样的集合

  • 顾客
  • 合同
地址有相等的集合,如

  • 顾客
  • 合同
我有一种不好的感觉来解决搜索银行账户或街道并显示哪些实体与结果集链接的要求

也许ADRESE查询中“abc street”的四个结果比需要查询所有“add_u2;”链接表四次来识别所有链接

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


感谢您的任何建议

也许任何/多到任何映射都可以解决这个问题


但它与继承相结合

使用多对多接口

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

class Contact
{
    ICollection<IHaveContacts> EntitiesWithContacts { get; private set; }
}
接口IHaveContacts
{
ICollection联系人{get;}
}
班级联系
{
ICollection entities with contacts{get;private set;}
}

不幸的是,FNH似乎不支持它。将hbm.xml单独用于此映射,或者在将其添加到配置之前编辑映射。

客户/合同地址/银行账户是一对多还是多对多?多对多(可能银行账户可以减少为一对多)