我有一个数据库,其中包含一个名为“Roles”的表,其中包含“Id”和“RoleName”列。这些是表中的行:
- GUID1管理员
- GUID2系统
- GUID3技术员
- GUID4正常
“用户”表中的用户可以拥有多个角色。我想要 LINQ 代码来检查特定用户是否具有“技术员”角色。
这是我现在的代码:
using (MyDbEntities entities = new MyDbEntities())
{
User user = entities.Users.Where(u => u.Id == userIdToFetch).Single();
// Check if user is 'Technician'
if (user.Roles.Any(role => role.Name == "Technician") == true)
{
// user IS technician - do work here
}
}
我的问题是 - 我不想将字符串“Technician”硬编码到我的代码中,因为也许有一天数据库中的角色名称会更改为“Tech”。
我看过使用“资源”,但这并不好,因为更改资源中的字符串意味着重新编译项目。
我不想在包含此信息的配置文件中添加一个部分,因为在我看来这太过分了......
有什么建议么 ?