ユーザーとロールの間に多対多の関係があり、ユーザーエンティティのインスタンスと複数のロールIDがある場合、他のロールデータがなく、選択を行わずに、2つのタイプのエンティティ間に関係を挿入できます。最初の役割?
アップデート:
私は十分に明確ではなかったかもしれません。ロールのインスタンスはありません。ロールIDのみがあります。最初にデータベースからRoleオブジェクトを入力せずに、UserとRoleの関係を作成することは可能ですか?
ユーザーとロールの間に多対多の関係があり、ユーザーエンティティのインスタンスと複数のロールIDがある場合、他のロールデータがなく、選択を行わずに、2つのタイプのエンティティ間に関係を挿入できます。最初の役割?
アップデート:
私は十分に明確ではなかったかもしれません。ロールのインスタンスはありません。ロールIDのみがあります。最初にデータベースからRoleオブジェクトを入力せずに、UserとRoleの関係を作成することは可能ですか?
はい、IDを持っていて、それらを関連付ける必要がある場合
あなたはこれを行うことができるはずです(擬似コード)
// how you get this doesn't matter so long as it is in the Context
User user = ...;
Role role = new Role {Id = 2};
// role 2 is in unchanged state
ctx.AttachTo("Roles", role);
// role 2 is unchanged + added relationship between user and role 2
user.Roles.Add(role);
ctx.SaveChanges();
ここで重要なのAttachTo
は、エンティティを変更されていない状態のObjectStateマネージャーに配置することです。そのエンティティを変更する必要がなく、関係構築にのみ使用する限り、すべてのプロパティ値を知る必要はなく、PKで十分です。
アタッチしたら、関係を構築できます。
お役に立てれば
乾杯アレックス
データバインディングを使用していない場合は、必ず。多対多は、相互の参照のリストとしてマップされます。User.Roles.Add(Role ...)で問題ないはずです。