pqu*_*est 3 .net c# entity-framework entity-framework-6
我在种子方法中使用AddOrUpdate来保持我的权限是最新的,但是,在下面的代码更新现有角色(而不是创建它)的情况下,我创建的任何新权限都没有添加到角色中.我究竟做错了什么?
foreach (KeyValuePair<string, string[]> s in new Dictionary<string, string[]>{
{"Superuser", context.Permissions.Select<Permission, string>(p=>p.Name).ToArray()},
})
{
Role r = new Role();
r.Name = s.Key;
r.Permissions = new List<Permission>();
foreach (string p in s.Value)
r.Permissions.Add(context.Permissions.Where(per => per.Name == p).First());
context.Roles.AddOrUpdate(i => i.Name, r);
}
context.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
AddOrUpdate 只添加或更新主要实体,但不添加或更新它的关系.
所以你必须分两步完成:
Role,和AddOrUpdate它.现在,您可以从RoleId添加或更新的表格中获取(或任何PK)Role.Permissions,并明确设置他们RoleId(或FK是什么).随后AddOrUpdate的Permissions.| 归档时间: |
|
| 查看次数: |
1097 次 |
| 最近记录: |