1
我有身份框架和自定义角色的问题。我的自定义角色包含一组活动权限。asp.net身份与自定义角色
我的自定义角色的样子
public class MyRole : IdentityRole
{
public List<MyPermission> Permissions { get; set; }
}
public class MyPermission
{
public int Id { get; set; }
public int Value { get; set; }
}
和RoleManager这样
public RoleManager<MyRole> MyRoleManager;
我可以创建新的角色,但我有问题的角色更新许可。 我喜欢更新
myRole.Permissions.Clear();
myRole.Permissions.Add(new MyPermission() { ... });
MyRoleManager.Update(myRole);
新的权限已经添加,但在数据库中的旧许可仍。我怎样才能删除那些老人。
编辑: 我刚刚注意到了更多的问题。当我使用RoleManager中的FindById时,没有来自数据库的权限加载。
谢谢。
伟大的解决方案!它运作良好。 MyPermission现在自动加载并删除外键。然而,MyPermission记录仍然在空数据库中。请再次指导我如何删除这些东西。谢谢:) – dokibi
@dokibi没问题,请接受答案,如果它的工作。 :)删除后,你可以做一个'SaveChanges()'。如果你想'Permission'也被删除,你可以设置一个级联删除,如下所示:http://stackoverflow.com/questions/17487577/entity-framework-ef-code-first-cascade-delete-for-one至零或一关系 – hutchonoid
谢谢你的回复,但这次不行。在我添加.HasOptional()。WithOptionalDependent()。WillCascadeOnDelete(true);和添加迁移,EF从不存在的列生成sp_rename并且update-database显示错误参数@objname不明确或声明的@objtype(COLUMN)错误。 – dokibi