1

マイコンテキストはEntity Frameworkのコード1を介して、このモデルを使用=> enter image description hereMany to Many Entity Frameworkにデータを挿入/更新します。どうすればいいのですか?

あり、データベース内の データテーブルは、=>

1)ユーザー表

enter image description here

2)役割になります表

enter image description here

3)のUserRole表 - 自動的

enter image description here

作成された新しいリンクテーブルユーザのモデル=>

enter image description here

あるロールのモデル=>

enter image description here

あります

と私のOデータ私はのUserRoleテーブル

にレコードを挿入したい場合に正しく

enter image description here

ワーキングシングルユーザー/ロールテーブルのレコードを挿入するため、どのようなクエリ私は、書くべきERYは、誰かが任意のアイデア

+2

EF(ORM)のポイントは、データベースを抽象化して、テーブル/行/列の代わりに*オブジェクト*を扱うことです。それで、あなたは自分自身に "UserRoles'テーブルに' INSERT'をどうやって質問する必要はありませんか? 「ロール」と「ユーザ」を関連付けるにはどうすればよいのでしょうか?答えはもっと明確です: 'user.Roles.Add(role)'または 'role.Users.Add(user)'(EFは知っています後者のステートメントの両方が同じ関係の2つの終わりであるため、効果的に同じです) – haim770

+0

シンプルなOdataクライアントを使用してどのように使用しますか?私は を次のように行った新しいユーザーを追加したいとき は待つmetadataManagementClient.For ().SET(新しいユーザー{ID =新しいGUID()、名前= 'テスト'})InsertEntryAsync(); 今すぐ新しいロールをユーザーに関連付けるにはどうすればよいですか?詳しく教えて? – Neo

答えて

1
を持つことができます
// Fetch the user. 
var user = await metadataManagentClient.For<User>().FirstOrDefaultAsync(x => x.Name == "Test"); 


// If you want to add a new role. 
var newRole = new Role() 
{ 
    Name = "My new role" 
}; 
user.Roles.Add(newRole); // Adds new role to user. 

// If you want to add an existing role 
var existingRole = await metadataManagentClient.For<Role>().FirstOrDefaultAsync(x => x.Name == "My Existing Role"); 
user.Roles.Add(existingRole); // Adds existing role to user. 

// Save changes. 
metadataManagentClient.SaveChanges(); 

それとも

await metadataManagentClient.SaveChangesAsync(); 

あなたメートルIDも設定したいしかし、空のGUIDを生成するので、new Guid()に注意してください。おそらく何か(IDENTITYを使用していない場合)はGuid.NewGuid()です。

+0

単純なOdataクライアントには、 'SaveChangesAsync'や' SaveChanges'のようなメソッドはありません。 – Neo

関連する問題