c# - 存储查找值的最佳方式

标签 c# asp.net optimization

这个问题想了很久,想在这里求教一下。

在我的应用程序中允许有 10 个用户角色。它是一个 ASP.NET MVC2 应用程序。每个 Controller 方法只能由特定用户角色访问。

为了实现这一点,我创建了一个 UserRoleType 枚举。

 public enum UserRoleType
 {
        SystemAdministrator = 1,
        SeniorLevelExecutive = 2,
        SeniorManager = 3,
        JuniorManager = 4,
        SeniorAdmin = 5,
        JuniorAdmin1 = 6,
        JuniorAdmin2 = 7,
        SeniorAppraiser = 8,
        JuniorAppraiser = 9,
        SeniorResearch = 10   
 }

这些值与数据库中的内容匹配(具有 10 行的 UserRole 表)。

此外,用户的 UserRoleId 存储在 [User] 表中。一旦用户登录,我们就会从数据库中获取用户的 roleId,并将其与上面的枚举相匹配。例如,如果用户的 roleId 是 4,则表示他/她是初级经理。

此应用程序目前未投入生产。我看到的唯一缺点是,当我们上线时,如果由于某种原因用户角色类型表中的值与枚举不匹配,我们将遇到大麻烦。有哪些选择?或者我应该只专注于确保我们在数据库中有匹配的值。任何帮助将不胜感激。

非常感谢!

最佳答案

我的观点是,如果您不能信任您自己在数据库和配置文件中的配置,那么您无论如何都会犯错。只需确保您的数据库记录将该值作为特定列值,而不是自动生成的行 ID。

关于c# - 存储查找值的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5599788/

相关文章:

java - 间隔树实现在序列化后占用大量文件空间

C# 我应该如何将给定的数据从对象收集到另一个实例?

c# - 客户端没有及时收到消息(TcpClient)

c# - 无法在我的机器上运行特定的 ASP.NET 项目。 Rider 和 VS2019

c# - 使用 Web 浏览器控件隐藏来自 WP8 中 Javascript 的警报框

asp.net - 从 ASP.NET 页面返回 JSON 对象

c# - 如何在知道同一条目中的其他值的同时获取表中的值?

c# - 从下拉选择中选择 * C#

iphone - 进行移动和服务器同步的最佳方式是什么?

php - 内存不足总是在同一行