J'essaie de trouver un moyen de référencer une entité d'une autre à l'aide de clés non principales pour les entités référencées et de référence. Je donne les résultats suivants:NHibernate fluide: Référencement d'une autre entité sur plusieurs colonnes clés pour les deux parent et enfant
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; }
}
La cartographie à UserContact utilise en fait une vue qui se termine-up duplication d'enregistrements sur la clé primaire (contactID) sur la table réelle. (Ceci est par conception.)
j'ai les applications suivantes:
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?
}
}
je dois faire référence à la UserContact dans le EmergencyContact afin que le UserId et EmergencyUserId de l'entité EmergencyContact traceront à l'ID utilisateur et ContactUserId colonnes de l'entité UserContact. Quelle est la meilleure façon de procéder?