Я использую 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 обратно из репозитория, GroupOwned будет равен исходной группе, однако, когда я верну группу, если я проверю счетчик в Group.Admins, счет будет 0. В таблице Join есть GroupID и В нем сохранен PersonID.
Спасибо за любой совет, который у вас есть.