Я пытаюсь выяснить способ ссылки на один объект из другого, используя непервичные ключи как для ссылочных, так и для ссылочных объектов. У меня есть следующие:Fluent 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?
}
}
Мне нужно ссылаться на UserContact в EmergencyContact так что UserId и EmergencyUserId от EmergencyContact объекта будет отображать на UserId и ContactUserId столбцы объекта UserContact. Каков наилучший способ сделать это?