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

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

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

EF中Enum的使用有两种:

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

② 使用已存在的枚举

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

一个栗子:

我们将把Teacher表的TeacherType列转换为枚举类型。在TeacherType中1表示permanent teachers类型,2表示contractor teachers类型,3表示guest teachers类型。

实现方法:在Teacher的TeacherType属性上点击右键,选择Convert to Enum,如下图

这时会弹出Add Enum Type会话框,将Underlying Type设置为int32(和数据库中类型对应),添加枚举成员如下图所示

点击Ok后打开模型浏览器发现在Enum Type文件夹下多了TeacherType,Teacher模型中的TeacherType也变成了TeacherType。

                    

 

 这时我们就可以在代码中使用枚举类型了:

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系列教程汇总

posted @ 2018-09-13 16:10  捞月亮的猴子  阅读(2782)  评论(5编辑  收藏  举报