2011-08-21 26 views
2

我剛開始學習,測試ADO.net實體數據模型與MySQL - 一切都會好起來,除了我注意到一件事太棒..ASP.net 4.0實體數據模型的Mysql沒把mysql的枚舉右

在我MySql表我創建了一個Enum列類型。當ASP.net創建Model類時,枚舉被視爲字符串而不是Enums--有沒有辦法解決這個問題?

MySql中的UserStatus列是一個枚舉,它具有2個潛在屬性,Enabled和Disabled - 但是asp.net將其視爲字符串值: user.UserStatus =「Enabled」;

希望看到沿着這些線的東西... user.UserStatus = UserStatuses.Enabled;

謝謝!

羅蘭

回答

2

有作爲枚舉SQL類型沒有這樣的事情,至少不是一個標準的類型,這意味着它是非標準的,你就會有一個很難發現正確支持得當任何框架。

更糟糕的是,實體框架目前不支持代碼中的枚舉類型。有一些黑客和變通辦法,但你會發現他們是痛苦的,不值得。對於所有意圖和目的,MySQL枚舉是一個字符串對象。你可能不得不發佈一些自定義sql來獲取枚舉類型來填充你的列表框。

哦,和FYI:8 Reasons why MySQL's ENUM data type is evil

+0

那很不幸!在這種情況下,你是否有任何處理「enum LIKE」值的建議,我只是喜歡使用枚舉,因爲它們提供了一個易於分配的常用字段,而不必記住所有字符串的可能性 – 99823