c# - 如何避免代码中枚举值与数据库中相应值之间的依赖关系?

标签 c# enums

我有许多用户权限,这些权限在我的 ASP.NET 应用程序中经过测试。这些权限值在枚举中引用,这样我就可以像这样方便地测试权限:

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

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

最佳答案

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

public enum MyEnum : int 
{
   None =0,
   Value = 1,
   AnotherValue =2 
}

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

关于c# - 如何避免代码中枚举值与数据库中相应值之间的依赖关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/292378/

相关文章:

Delphi:如何拥有非连续子范围枚举类型?

c++ - 枚举尚未声明

java - 包含 Java 对象的数组中的最大值

c# - 在 C# 单元测试中使用 64 位 native .DLL

c# - 你如何编译C#?

c# - 将 MVC 4 应用程序中的 DateTime.Now 转换为我国的标准时间(当应用程序部署在美国时)

c# - 如何在属性中使用查询参数?

C# 发生缓冲区溢出

c# - 在 .NET 中实现枚举数组到字符串数组类型转换器

python - 如何使用别名扩展枚举