Entity framework 向多对多实体框架插入/更新数据。我该怎么做?

Entity framework 向多对多实体框架插入/更新数据。我该怎么做?,entity-framework,ef-code-first,entity-framework-6,odata,Entity Framework,Ef Code First,Entity Framework 6,Odata,我的上下文是=> 通过实体框架代码1使用此模型, 数据库中的数据表变为=> 1) 用户表 2) 角色表 3) UserRole表-自动创建的新链接表 用户的模型为=> 角色的模型为=> 用于插入单用户/角色表记录的my O数据查询正常工作 现在,当我想将记录插入UserRole表时,我应该编写什么查询 有人知道吗 // Fetch the user. var user = await metadataManagentClient.For<User>().FirstOrD

我的上下文是=>

通过实体框架代码1使用此模型, 数据库中的数据表变为=>

1) 用户表

2) 角色表

3) UserRole表-自动创建的新链接表

用户的模型为=>

角色的模型为=>

用于插入单用户/角色表记录的my O数据查询正常工作

现在,当我想将记录插入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();

您可能还需要设置ID。但是要注意
newguid()
,因为它会生成一个空的Guid。您可能想要的(如果您没有使用IDENTITY)是
Guid.NewGuid()。这就是为什么你不必问自己“我如何将<代码>插入<代码>用户角色<代码>表中?”而是“我如何将一个新的<代码>角色<代码>与一个<代码>用户<代码>”相关联”,现在答案更清楚了:<代码>用户.Roles.Add(Role)
或<代码>角色.Users.Add(User)(EF知道后两个语句都是同一关系的两端,因此它们实际上是相同的)如何使用简单的Odata客户端?当我想添加新用户时,我喜欢下面的wait-metadataManagementClient.For().Set(新用户{Id=new-Guid(),Name='Test'}).InsertEntryAsync();现在如何将新角色与用户关联?请详细说明?简单Odata客户端没有任何类似
saveChangesSync
SaveChanges
await metadataManagentClient.SaveChangesAsync();