如何在流畅的NHibernate中将2个表(1:多个)映射到单个域对象?

时间:2011-06-03 22:05:35

标签: nhibernate fluent-nhibernate nhibernate-mapping

假设我有人(Id,Name)和地址(Id,PersonId,Address,IsPrimary)表,其中1到0..2的关系。这两者都应映射到单个域对象Person,如下所示:

public class Person()
{
  public virtual string Name;
  public virtual string PrimaryAddress;
  public virtual string SecondaryAddress;
}

IsPrimary列定义它是主要(= true)还是次要(= false)地址。 所以最终它应该是两个左连接,附加条件IsPrimary = 1或IsPrimary = 0.

是否可以在流利的NH中进行这种类型的映射?它看起来怎么样?

谢谢!

1 个答案:

答案 0 :(得分:1)

我想说在这个例子中,你并没有真正做一对多的映射。也许最好让你的人员表更像Person(Id,Name,PrimaryAddressId,OtherAddressId)。如果你想做一对多的事情,为什么不将它映射一对多,然后制作主要和次要地址属性,以查找:

中的相应地址
public virtual IList<Address> Addresses { get; set; }

属性?我想这对我来说更有意义。