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