我的上下文是=> 將數據插入到多對多實體框架中。我該怎麼做?
經由實體框架代碼第一使用該模型,在數據庫 數據表變得=>
1)用戶表
2)作用表
3)的UserRole表 - 一個新的鏈接表創建自動
模型用戶是=>
爲角色模型是=>
and my O Data qu ERY用於單用戶插入記錄/角色表工作正常
現在,我應該寫什麼查詢,當我想插入記錄的UserRole表
能有人有任何想法
我的上下文是=> 將數據插入到多對多實體框架中。我該怎麼做?
經由實體框架代碼第一使用該模型,在數據庫 數據表變得=>
1)用戶表
2)作用表
3)的UserRole表 - 一個新的鏈接表創建自動
模型用戶是=>
爲角色模型是=>
and my O Data qu ERY用於單用戶插入記錄/角色表工作正常
現在,我應該寫什麼查詢,當我想插入記錄的UserRole表
能有人有任何想法
// 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();
優米ight也想設置ID。但要小心new Guid()
,因爲它會生成一個空的GUID。你可能想要的(如果你不使用IDENTITY)是Guid.NewGuid()
。
簡單Odata客戶端沒有像SaveChangesAsync和SaveChanges這樣的方法 – Neo
EF(作爲ORM)的要點是將數據庫抽象出來,讓你處理* objects *而不是表/行/列。這就是爲什麼你不必問自己:「我如何'INSERT'到'UserRoles'表中?」而是「我如何將一個新的'Role'與'User'關聯起來,現在答案更加清晰:'user.Roles.Add(role)'或'role.Users.Add(user)'(EF knows後面的兩條語句是同一關係的兩端,因此它們實際上是相同的) – haim770
如何使用簡單的Odata客戶端使用它? 當我想添加新用戶時,我喜歡以下 等待metadataManagementClient.For().Set(新用戶{Id =新Guid(),Name ='Test'})。InsertEntryAsync(); 現在如何將新角色與用戶關聯?請詳細說明 ? –
Neo