假设我有人(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中进行这种类型的映射?它看起来怎么样?
谢谢!
答案 0 :(得分:1)
我想说在这个例子中,你并没有真正做一对多的映射。也许最好让你的人员表更像Person(Id,Name,PrimaryAddressId,OtherAddressId)。如果你想做一对多的事情,为什么不将它映射一对多,然后制作主要和次要地址属性,以查找:
中的相应地址public virtual IList<Address> Addresses { get; set; }
属性?我想这对我来说更有意义。