Fluent NHibernate を使用していますが、クラスの 1 つと多対多の関係をセットアップする際に問題が発生しています。それはおそらくばかげた間違いですが、私はそれを機能させようとして少し立ち往生しています。とにかく、多対多の関係を持ついくつかのクラスがあります。
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が保存されています。
アドバイスありがとうございます。