NHibernate映射 - 从单个类对同一个表的多个引用

时间:2012-10-08 10:14:34

标签: nhibernate mapping

我有一个班级“人”,其中包括(其中包括)这些属性:

  • homeAddress(类型地址)
  • billingAddress(类型为地址)
  • 地址(类型为List,包含该人员的所有已知地址)

集合“地址”保存对该人的所有已知地址的引用,包括由其他两个属性明确引用的两个地址(不是历史,只是“我能找到”该人的地方列表,如“奶奶的家“或”办公室“)。也许这个人只有一个地址被“家庭住址”,“账单地址”和“地址”引用。

在数据库中,我会有一个表“people”,其中包含“homeAddressID”列和另一个“billingAddressId”,表格“地址”只有“personId”(这里没有像“isHomeAddress”或“isBillingAddress”这样的标记)

我应该如何映射这个类?

1 个答案:

答案 0 :(得分:0)

就像这个一样简单

public PersonMap()
{
    References(x => x.HomeAddress, "homeAddressID");
    References(x => x.BillingAddress, "billingAddressID");
    HasMany(x => x.Addresses)
        .KeyColumn("personId");
}