Название в значительной степени все объясняет, у меня есть объект 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();