tem*_*pid 4 many-to-many entity-framework-4
我有3张桌子 -
User (Id, Name)
Roles (Id, Name)
UserRoles (UserId, RoleId)
Run Code Online (Sandbox Code Playgroud)
我认为他们是自我解释的.如何在UserRoles中更新条目(UserId和RoleId)?
context.User.Roles 给我一个角色列表,但我如何更新它们?
谢谢.
来自你的评论:
context.User.Roles给出了角色列表.我可以执行for-each并更新Id,但是如何在该表中更新相应的UserId foreach RoleId?
首先,你不应该更新Id.
其次,既然你正在使用EF,你应该尝试用对象(或实体)来思考,而不是"DB-many-to-many-mapping-tables".每个User实体都有一个集合Roles.如果Role从User.Roles集合中删除a 并调用context.SaveChanges(),则相应的条目将从UserRolestabele中删除.同样,将Role对象添加到User.Roles集合并保存更改时,将在UserRoles表中创建一个新条目.
为清楚起见,以下示例可能有用:
var user = context.Users.Include("Roles").Where(u => u.Name == "User1").FirstOrDefault();
user.Roles.Remove(user.Roles.Where(r => r.Name == "Admin").FirstOrDefault());
context.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
(为简单起见省略了空引用检查).
| 归档时间: |
|
| 查看次数: |
5075 次 |
| 最近记录: |