Название в значительной степени объясняет все это, у меня есть объект Member, который ссылается на «Friends», которые также являются типом Member.
public class Member : Entity
{
public Member()
{
Friends = new List<Member>();
}
public virtual IList<Member> Friends
{
get; set;
}
}
Инструмент генерации схемы делает его отношением 1: n, в то время как он долженбыть отношением: n, т. е. в таблицу-член добавляется столбец с именем member_id, и не создается соединительная таблица.
Есть ли способ сделать Self ссылающимся на многие-многие отношения в 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 column: Member_id "
Спасибо
РЕДАКТИРОВАТЬ: Я нашел ответ, это поставить:
mapping.HasManyToMany(m => m.Friends).ParentKeyColumn("Member_Id").ChildKeyColumn("Friend_Id")
.Table("MemberFriendsLinkTable").Inverse().Cascade.SaveUpdate();