5

ユーザーとロールの間に多対多の関係があり、ユーザーエンティティのインスタンスと複数のロールIDがある場合、他のロールデータがなく、選択を行わずに、2つのタイプのエンティティ間に関係を挿入できます。最初の役割?

アップデート:

私は十分に明確ではなかったかもしれません。ロールのインスタンスはありません。ロールIDのみがあります。最初にデータベースからRoleオブジェクトを入力せずに、UserとRoleの関係を作成することは可能ですか?

4

2 に答える 2

9

はい、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で十分です。

アタッチしたら、関係を構築できます。

お役に立てれば

乾杯アレックス

于 2009-06-02T03:51:47.597 に答える
2

データバインディングを使用していない場合は、必ず。多対多は、相互の参照のリストとしてマップされます。User.Roles.Add(Role ...)で問題ないはずです。

于 2009-06-01T20:30:13.203 に答える