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

NHibernate映射-从单个类对同一个表的多个引用,nhibernate,mapping,Nhibernate,Mapping,我有一个“人”类,其中包括以下财产: 家庭地址(地址类型) 账单地址(地址类型) 地址(属于列表类型,它包含该人员的所有已知地址) 集合“地址”引用了该人的所有已知地址,包括其他两处房产明确引用的两处地址(不是历史记录,只是“我能找到”该人的地方列表,如“奶奶的家”或“办公室”)。可能此人只有一个地址,由“家庭地址”、“账单地址”和“地址”引用 在数据库中,我将有一个表“people”,其中有一列“homeAddressID”,另一列是“billingAddressId”,还有一个表“add

我有一个“人”类,其中包括以下财产:

  • 家庭地址(地址类型)
  • 账单地址(地址类型)
  • 地址(属于列表类型,它包含该人员的所有已知地址)
集合“地址”引用了该人的所有已知地址,包括其他两处房产明确引用的两处地址(不是历史记录,只是“我能找到”该人的地方列表,如“奶奶的家”或“办公室”)。可能此人只有一个地址,由“家庭地址”、“账单地址”和“地址”引用

在数据库中,我将有一个表“people”,其中有一列“homeAddressID”,另一列是“billingAddressId”,还有一个表“addresses”,其中只有“personId”(这里没有“isHomeAddress”或“isBillingAddress”这样的标志)

我应该如何映射这个类?

就这么简单

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

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