我有一個名爲'角色','Id'和'RoleName'列的數據庫。 這些都是在表中的行:如何在C#項目中存儲可配置的字符串?
- GUID1管理員
- GUID2系統
- GUID3技術員
- GUID4正常
在A用戶'用戶'表可以有幾個角色。 我想要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
}
}
我的問題是 - 我不想硬編碼字符串「技術員」我的代碼,因爲 也許有一天,角色名稱在數據庫中將更改爲「Tech」。
我已經看過使用'資源',但這並不好,因爲更改資源中的字符串意味着重新編譯該項目。
我不希望添加到保留此信息, 配置文件中的部分,因爲在我看來,作爲超殺...
有什麼建議?
這正是我今天所做的。但是你建議在代碼中我必須硬編碼技術人員角色id的GUID,而不是字符串「TECHNICIAN」。這似乎會讓我真的很醜陋的代碼,不是嗎? –
您不必硬編碼GUID。您可以在您的配置文件中添加一個設置,您可以在其中存儲您擁有的任何角色的GUID。這就是我通常所做的。我總是在我的應用程序中有一個配置對話框,我可以添加/刪除/編輯這樣的東西。如果您稍後添加新角色,也會更輕鬆。 – Splatbang
那麼爲什麼不在設置文件中做到這一點? –