私は4つのクラスを持っています:
class Group
{
int64 id;
String name;
GroupMembershipCollection members ;
}
class User
{
int64 id;
String name;
GroupMembershipCollection groups;
}
class Role
{
int64 id;
String name;
}
class GroupMembership
{
User User;
Group Group;
Role Role;
}
class GroupMembershipCollection : ObjectCollection<GroupMembership>
{}
私のマッピングは次のとおりです。
UserMap
{
//other maps
this.HasMany<GroupMembershipCollection, GroupMembership>(p => p.Groups, cfg => cfg.Cascade.AllDeleteOrphan()); }
GroupMap
{
//other maps
HasMany<GroupMembershipCollection, GroupMembership>(g => g.Members, cfg => cfg.Cascade.AllDeleteOrphan());
}
GroupMemberShipMap
{
References(x => x.User).Cascade.None();
References(x => x.Group).Cascade.None();
References(x => x.Role).Cascade.None();
}
グループにメンバーを追加しようとすると、次のエラーが表示されます。
INSERT ステートメントが FOREIGN KEY 制約 "FK_GroupMemberships_UserID" と競合しました。テーブル dbo.Users で
グループをメンバーに追加しようとすると、次のようになります。
INSERT ステートメントが FOREIGN KEY 制約 "FK_GroupMemberships_GroupID" と競合しました。テーブル dbo.Groups で
助けてください...