文章目錄
讓 EntityFramework 綁定自定 Enum 型別
讓 EntityFramework 可以綁定自定 Enum 有兩個好處:
- 不用再自行轉換 int 跟 Enum
- 透過 scaffolding 可以直接綁定 dropdownlist,這讓我們在開發上節省不少工作。
今天的筆記是針對 EntityFramework Database First 模式(因為 Code First 的類別本來就是自定的),透過 EntityFramework 的設定,可以讓 Class 產出時直接綁定 Enum 型別,存取資料時也能自動完成轉換。
資料欄位定義
WeekDay 為
int
自訂 Enum
public enum WeekDaysEnum
{
Default,
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
未設定前
Class
int 型別
scaffolding
開放式 input
EntityFramework 設定綁定 Enum
開啟 .edmx
開啟 Model Browser
- 1-1. 在 edmx diagram 隨處按右鍵
1-2.
Show in Model Browser
Model Browser 加入自訂 Enum
3-1. 新增自訂 Enum
- Enum Types 右鍵
Add New Enum Type
3-2. 新增方式有兩種
a. 直接輸入
- 會新增 .cs 在 .edmx 所在 folder 下
依輸入內容建立 enum
b. 綁定既有 enum
- 指定 enum 名稱
輸入既有 enum 型別名稱(建議加上 namespace)
3-3. 欄位綁定 Enum 型別
- 開啟欄位屬性視窗
- 在欲綁定的欄位按 右鍵–> properties 或 F4
Type 選擇剛剛加入的 enum 型別
- 開啟欄位屬性視窗
3-4. 記得存檔及編譯
完成結果
Class
自定 enum 型別
scaffolding
綁定 dropdownlist
心得
綁定後就可初步避免手誤填錯的問題(如果擔心有心人士搗蛋還是需要自行實作檢查機制),搭配上 scaffolding 自動產生對應的 dropdownlist ,另外還有再也不用手動轉換,這些都讓開發效率可以大大提昇。
參考資訊
文章作者 Yowko Tsai
上次更新 2021-11-03
授權合約
本部落格 (Yowko's Notes) 所有的文章內容(包含圖片),任何轉載行為,必須通知並獲本部落格作者 (Yowko Tsai) 的同意始得轉載,且轉載皆須註明出處與作者。
Yowko's Notes 由 Yowko Tsai 製作,以創用CC 姓名標示-非商業性-相同方式分享 3.0 台灣 授權條款 釋出。