将角色映射到静态值

时间:2016-08-27 16:35:49

标签: c# sql-server asp.net-core entity-framework-core

继续我的previous question,接受的答案完美无缺 但是,我只想在我的数据库中拥有一些角色,比如说:

表:角色

.someClass {
    @include transition(0.3s ease all);
}

每次用户注册帐户时,问题中接受的答案都会在角色中创建一个新行。有什么办法可以请求Identity系统使用数据库中现有的角色吗?考虑代码:

Id | Role
---------------
1  | AccountOwner
2  | AccountAdmin
3  | AccountUser

如果可能,我想完全删除Role类并将其替换为Enum。

1 个答案:

答案 0 :(得分:0)

如果要将其替换为枚举,则不再需要角色实体,数据库中的Role表也是如此。只需将Role属性设置为Role(enum)类型,它将作为int持久保存到db中。但是,这会导致设计缺陷,您需要更新代码以便为将来添加其他角色。

关于只有三个角色而不是每次都不必要地添加它们: 从db(var role = Context.Roles.Where(...).FirstOrDefault())获取正确的角色,并将其放入useraccount的role属性中。通过这种方式,您将确保所有uac都指向正确的角色实例。