Я использую Fluent NHibernate и у меня возникают проблемы с настройкой отношений «многие ко многим» с одним из моих классов. Возможно, это глупая ошибка, но я немного застрял, пытаясь заставить ее работать. В любом случае, у меня есть пара классов, которые имеют отношения многие-многие.
public class Person
{
public Person()
{
GroupsOwned = new List<Groups>();
}
public virtual IList<Groups> GroupsOwned { get; set; }
}
public class Groups
{
public Groups()
{
Admins= new List<Person>();
}
public virtual IList<Person> Admins{ get; set; }
}
С отображением, похожим на это
Человек: ...
HasManyToMany<Groups>(x => x.GroupsOwned)
.WithTableName("GroupAdministrators")
.WithParentKeyColumn("PersonID")
.WithChildKeyColumn("GroupID")
.Cascade.SaveUpdate();
Группы: ...
HasManyToMany<Person>(x => x.Admins)
.WithTableName("GroupAdministrators")
.WithParentKeyColumn("GroupID")
.WithChildKeyColumn("PersonID")
.Cascade.SaveUpdate();
Когда я запускаю интеграционный тест, я в основном создаю нового человека и группу. Добавление группы в Person.GroupsOwned. Если я получаю объект Person из репозитория, GroupsOwned равен начальной группе, однако, когда я возвращаю группу, если я проверяю счетчик для Group.Admins, счетчик равен 0. Таблица соединения имеет GroupID и PersonID сохранен в нем.
Спасибо за любые советы.