Entity Framework入门教程(16)---Enum

EF DbFirst模式中的枚举类型使用

这一节介绍EF DbFirst模式中的Enum(枚举类型),CodeFirst模式中的Enum会在之后的EF CoreFirst系列中介绍。EF5中添加了对Enum的支持。如今Enum支持的数据类型有:Int16,int32,int63,byte,sbyte。html

EF中Enum的使用有两种:数据库

① 经过EDM设计器将实体中的某一属性转换为枚举类型浏览器

② 使用已存在的枚举post

1.经过EDM设计器将实体中的某一属性转换为枚举类型

一个栗子: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();
}

2.使用已存在的枚举

若是咱们已经有了一个枚举类型,咱们能够把任意一个实体的属性的数据类型指定为这个枚举类型。

实现方法:在模型设计器中右键->Add New->Enum Type->填入枚举的名字(不用添加成员,由于咱们在代码中已经有了枚举的成员),选择 Refernce external type ,填入枚举的命名空间,点击Ok就能够了。这时模型浏览器的Enum Type文件夹中就有了咱们添加的枚举。咱们能够把这个枚举指定给任意实体的任意属性。

EF系列目录连接:Entity Franmework系列教程汇总