将数据库中的ID链接到枚举

时间:2014-01-06 17:30:40

标签: c# asp.net-mvc-4 linq-to-sql enums

我的数据库中有一个表,它有两列ID和一个var char Role。我知道id 99将与Admin状态相关,但我不想对此值进行硬编码。到目前为止,有人建议调查Enums来做到这一点,我看到的所有例子对我来说都没有意义,而且它们似乎没有硬编码值好。

enum Role
{
    Admin= 99,
    Commoner= 1,
    Pleb= 3,
    King= 5
}

有没有办法具体化这种关系,以便例如如果有人错误地将管理员ID作为9999播放,我的应用程序可以处理此关系并按预期工作。

我知道我可以尝试像

这样的东西
Admin = dataContext.Set<Role>().First(x => x.Name == "Admin");

但我想知道是否有正确的方法来做到这一点?或者有没有人这样做过?

1 个答案:

答案 0 :(得分:0)

您可以在应用程序启动时加载这些值并将其保存在字典中

var roles = new Dictionary<int, Role>():

我猜这些ID在应用程序运行时不应该更改,所以一旦你加载了它,就可以在字典中查找,如

var roleForId = roles[id];
var idForAdmin = roles.FirstOrDefault(x => x.Value == Role.Admin).Key;

这就是你追求的目标吗?