我正在使用 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。Join 表具有 GroupID 和PersonID 保存在其中。
感谢您提供的任何建议。