2013-07-04 70 views
0

我尋找到與NHibernate以下情況建模的正確方法ADRESS數據:NHibernate的「多鍵」映射 - 銀行賬戶/不同實體

銀行賬號和/或地址數據雲中鏈接到以下實體

  • 客戶
  • 合同
  • 索賠 * ...

這是完全不同的,所以它沒有鏈接到共同的父母。

目前,我唯一能做的就是爲每一個星座利用得天獨厚的鏈接表:

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

and

銀行已映射集合像

  • 客戶
  • 合同
  • ...

地址具有相同的集合像

  • 客戶
  • 個合同
  • ...

我有一種不好的預感,解決了要求搜索哪些實體與結果集連接的銀行賬戶或街道和表演。

也許四個結果爲「ABC街」的住址查詢比它要查詢所有「add_」鏈接表四次,以確定所有鏈接...

或許存在的一個更好的解決方案或建模問題?

感謝任何建議

+0

是客戶/合同地址/ bankaccount一對多還是多對多? – Firo

+0

多對多(也許銀行賬戶可以減少爲一對多) – HrKarlsson

回答

0

使用許多到任何與一個接口

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

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

unfortuna這似乎並不支持FNH。單獨爲此映射使用hbm.xml,或者在將映射添加到配置之前編輯映射。