Самостоятельная ссылка на отношения «многие ко многим» в Fluent NHibernate, автоматическое сопоставление с автоматическим сопоставлением с 1: n, а не с n: n

Название в значительной степени все объясняет, у меня есть объект Member, который ссылается на «Друзья», которые также относятся к типу Member.

public class Member : Entity
    {
        public Member()
        {            
            Friends = new List<Member>();
        }

        public virtual IList<Member> Friends
        {
            get; set;
        }
     }

Инструмент создания схемы делает это отношение 1: n, тогда как оно должно быть отношением: n, т. е. в таблицу элементов добавляется столбец с именем member_id, и никакая соединительная таблица не создается.

Есть ли способ создать в Fluent NHibernate связь «многие ко многим»?

Я пробовал использовать переопределение, полученное в качестве ответа раньше:

public class MemberOverride : IAutoMappingOverride<Member>
{
    public void Override(AutoMapping<Member> mapping)
    {
        mapping.HasManyToMany(m => m.Friends)
               .Table("MemberFriendsLinkTable");
    }
}

, но получаю сообщение об ошибке:

" NHibernate.MappingException: Повторяющийся столбец в сопоставлении для коллекции: Столбец Proj.BO.Member.Friends: Member_id "

Спасибо

РЕДАКТИРОВАТЬ: Я нашел ответ, его нужно указать:

mapping.HasManyToMany(m => m.Friends).ParentKeyColumn("Member_Id").ChildKeyColumn("Friend_Id")
                   .Table("MemberFriendsLinkTable").Inverse().Cascade.SaveUpdate();
10
задан Daniel Schilling 23 September 2011 в 15:53
поделиться