0

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

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

  • 顾客
  • 合同
  • 宣称 *...

这是完全不同的,所以它云没有链接到共同的父母。

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

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

银行已映射集合,例如

  • 顾客
  • 合同
  • ...

地址具有相同的集合,例如

  • 顾客
  • 合同
  • ...

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

在地址查询中,“abc street”可能有四个结果,而不是需要四次查询所有“add_”链接表来识别所有链接......

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

感谢您的任何建议

4

2 回答 2

0

使用多对任意接口

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

class Contact
{
    ICollection<IHaveContacts> EntitiesWithContacts { get; private set; }
}

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

于 2013-07-27T21:20:23.013 回答
0

也许任何/多对任何映射解决了这个问题

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

但它与继承相结合

于 2013-07-08T09:28:19.953 回答