Есть ли способ настроить симметричное сопоставление отношений самосоединения в NHibernate? Предположим, у нас есть две таблицы:
Users
id
Relations
id
user1
user2
relation_type
Классы User и Relation должны выглядеть следующим образом:
class User
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual ISet<Relation> Relations { get; set; }
}
class Relation
{
public virtual int Id { get; set; }
public virtual User User1 { get; set; }
public virtual User User2 { get; set; }
// Let's leave the RealationType as string for the sake of brevity
public virtual string RelationType { get; set; }
}
Я НЕ хочу, чтобы в таблице relations
было две строки для одного и того же отношения. Но отношение ДОЛЖНО быть симметричным, что означает, что если существует отношение между двумя пользователями, A и B, коллекция Relations
пользователя A должна содержать отношение с пользователем B, а отношения пользователя B должны содержать отношение к A.
Звучит почти как вызов. Но может кто-нибудь решить это? Пожалуйста, если можете, опубликуйте карту xml. Я не использую Fluent.