這一節介紹EF DbFirst模式中的Enum(枚舉類型),CodeFirst模式中的Enum會在之後的EF CoreFirst系列中介紹。EF5中添加了對Enum的支持。如今Enum支持的數據類型有:Int16,int32,int63,byte,sbyte。html
EF中Enum的使用有兩種:數據庫
① 經過EDM設計器將實體中的某一屬性轉換爲枚舉類型瀏覽器
② 使用已存在的枚舉post
一個栗子:spa
咱們將把Teacher表的TeacherType列轉換爲枚舉類型。在TeacherType中1表示permanent teachers類型,2表示contractor teachers類型,3表示guest teachers類型。設計
實現方法:在Teacher的TeacherType屬性上點擊右鍵,選擇Convert to Enum,以下圖code
這時會彈出Add Enum Type會話框,將Underlying Type設置爲int32(和數據庫中類型對應),添加枚舉成員以下圖所示htm
點擊Ok後打開模型瀏覽器發現在Enum Type文件夾下多了TeacherType,Teacher模型中的TeacherType也變成了TeacherType。blog
這時咱們就能夠在代碼中使用枚舉類型了:教程
using (var ctx = new SchoolDBEntities()) { Teacher tchr = new Teacher(); tchr.TeacherName = "New Teacher"; //指定枚舉類型 tchr.TeacherType = TeacherType.Permanent; ctx.Teachers.Add(tchr); ctx.SaveChanges(); }
若是咱們已經有了一個枚舉類型,咱們能夠把任意一個實體的屬性的數據類型指定爲這個枚舉類型。
實現方法:在模型設計器中右鍵->Add New->Enum Type->填入枚舉的名字(不用添加成員,由於咱們在代碼中已經有了枚舉的成員),選擇 Refernce external type ,填入枚舉的命名空間,點擊Ok就能夠了。這時模型瀏覽器的Enum Type文件夾中就有了咱們添加的枚舉。咱們能夠把這個枚舉指定給任意實體的任意屬性。
EF系列目錄連接:Entity Franmework系列教程彙總