如何避免代码中的Enum值与数据库中的相应值之间的依赖关系?

fle*_*esh 12 c# enums

我有许多用户权限,我在整个ASP.NET应用程序中进行了测试.这些权限值在Enum中引用,以便我可以方便地测试权限,如下所示:

  • btnCreate.Enabled = PermissionManager.TestPermission(Permission.AllowCreate);

但是,我也将这些权限存储在数据库中,因为我需要保存有关它们的更多信息,而不仅仅是它们的ID.但是这会在枚举值和数据库中的值之间产生可怕的依赖关系,这是对两者的一个考虑不周的变化,我在整个应用程序中都遇到了问题.有没有更好的解决这个问题的方法?以前有人处理过这个吗?

Rub*_*ben 1

我不知道最好的解决方案是什么,我想听听。我们的解决方案是显式键入枚举,例如

public enum MyEnum : int 
{
   None =0,
   Value = 1,
   AnotherValue =2 
}
Run Code Online (Sandbox Code Playgroud)

并将整数值保存到数据库中。例如,当值 1 被删除时,您仍然可以使用枚举,而 AnotherValue 在数据库中仍然具有值 2。