我的上下文是=> 将数据插入到多对多实体框架中。我该怎么做?
经由实体框架代码第一使用该模型,在数据库 数据表变得=>
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