0
我想找出一种方法来引用另一个实体使用非主键的引用和引用实体。我有以下:流利的NHibernate:在父键和子键的多个键列上引用另一个实体
public class UserContact
{
public virtual ulong ContactId { get; set;}
public virtual ulong UserId { get; set; }
public virtual ulong ContactUserId { get; set; }
}
public class EmergencyContact
{
public virtual ulong EmergencyContactId { get; set; }
public virtual ulong UserId { get; set; }
public virtual ulong EmergencyContactUserId { get; set; }
public virtual UserContact EmergencyUserContact { get; set; }
}
到UserContact映射实际使用的图,其中端部向上对实际的表的主键(使用ContactID)复制记录。 (这是由设计。)
我有以下映射:
public class UserContactMap : ClassMap<UserContact>
{
public UserContactMap()
{
Table("USER_CONTACT_VW");
CompositeId().KeyProperty(x => x.ContactId, "CONTACT_ID")
.KeyProperty(x => x.UserId, "USER_ID");
Map(x => x.ContactUserId, "CONTACT_USER_ID")
}
}
public class EmergencyContactMap : ClassMap<EmergencyContact>
{
public EmergencyContactMap()
{
Table("EMERGENCY_CONTACT");
Id(x => x.EmergencyContactId, "EMERGENCY_CONTACT_ID");
Map(x => x.UserId, "USER_ID");
Map(x => x.EmergencyUserId, "EMERGENCY_USER_ID");
References(x => x.EmergencyUserContact)//.What else goes here?
}
}
我需要在EmergencyContact内引用UserContact使得从EmergencyContact实体的用户ID和EmergencyUserId将映射到用户标识和ContactUserId UserContact实体的列。做这个的最好方式是什么?