我有Customers表:Customer(id,name status_id)。
我有狀態表:狀態(id,名稱,代碼)。
客戶與狀態之間有關係(FK):status_id(客戶)= id(狀態)。枚舉與實體框架 - 枚舉值獨立於錶行ID
在我狀態枚舉和客戶類中的.NET代碼:
enum Status {
status_1,
status_2,
status_3,
status_4
}
class Customer {
public virtual long id {get;set;}
public virtual string name {get;set;}
public virtual Status customer_status {get;set;}
}
的枚舉沒有從該數據庫的狀態行的值,因爲我不希望創建的依賴代碼中的數據(硬編碼)。
如何使用實體框架以在edmx中顯示客戶類?
編輯:
所有我找到了解決方案假定枚舉值都相同,客戶表中的STATUS_ID。他們甚至沒有對我非常重要的狀態表,這是爲了限制status_id的值的可能性。
@Ladislav Mrnka:非常appriciate幫助我。我不明白你的建議。實際上,存儲在數據庫中的值對代碼是透明的 - 代碼不應該關心值,而是代表狀態表中代碼的字符串。我想到了將字符串值轉換爲枚舉類型的視圖(與您的示例鏈接相同,但不是使用int - 使用字符串),但我不知道如何處理它。 – Naor 2011-04-20 20:30:58
@Naor:這更加複雜 - 你想要將值從導航屬性映射到枚舉。所以你必須將Statuses表添加到模型中。每次加載客戶時都必須加載它,並且必須再次定義單獨的非映射屬性,這會將相關實體轉換爲枚舉。並且請注意,非映射屬性不能用於linq-to-entities查詢。 – 2011-04-20 20:34:11
@Ladislav Mrnka:我能做什麼?哪些「依賴價值」的可能性我有?我有我的表中的數據。改變我的代碼中的所有枚舉是很多工作。 – Naor 2011-04-20 20:45:14