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

时间:2016-06-01 06:44:09

标签: entity-framework ef-code-first entity-framework-6 odata

我的背景是=> enter image description here

通过Entity Framework代码使用此模型1st, 数据库中的数据表变为=>

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 Data查询,用于插入单个用户/角色表的记录正常工作

enter image description here

现在,当我想将记录插入UserRole表

时,我应该写什么查询

有人可以有任何想法

1 个答案:

答案 0 :(得分: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。但请注意new Guid(),因为它会生成一个空的guid。你可能想要的(如果你没有使用IDENTITY)是Guid.NewGuid()