猿教程 Logo

Entity Framework中的枚举

你现在可以在Entity Framework 5.0以上的版本中使用枚举。 EF 5应该是针对.NET框架4.5,以便使用Enum。

可以使用以下数据类型来创建枚举:

  • Int16

  • Int32

  • Int64

  • 字节

  • SByte

您可以通过三种方式在实体数据模型中创建和使用Enum类型:

  1. 将实体的现有属性从EDM设计器转换为Enum

  2. 从EDM设计器添加一个新的枚举

  3. 使用来自不同命名空间的现有Enum类型

为了演示的目的,我们在SchoolDB的Teacher表中包含了TeacherType整数列。 教师类型1是为永久教师,2是承包商教师,3是客座教师。

1.将现有属性转换为枚举:

接下来,我们将看到如何将TeacherType转换为枚举。

首先,右键单击教师实体的TeacherType属性,然后在上下文菜单中单击“转换为枚举”。


它将打开“添加枚举类型”对话框,您可以在其中输入“枚举类型名称”,并选择“基础类型”和枚举成员名称。 例如:


将其转换为枚举后,您可以在模型浏览器中看到TeacherType作为枚举类型,如下所示:


此外,您可以看到TeacherType属性的类型转换为TeacherType枚举:


现在,您可以使用DBContext在CRUD操作中使用TeacherType Enum。 例如:

using (var ctx = new SchoolDBEntities())
    {
        Teacher tchr = new Teacher();
        tchr.TeacherName = "New Teacher";
        //assign enum value
        tchr.TeacherType = TeacherType.Permanent;
        ctx.Teachers.Add(tchr);
        ctx.SaveChanges();
    }

2.从设计器添加新枚举:

您还可以通过右键单击EDM设计器并选择添加→枚举类型来添加新的枚举。 它将打开相同的“添加枚举类型”对话框,您可以在其中输入枚举成员。


创建枚举类型后,您可以从属性窗口将TeacherType属性的类型更改为新创建的TeacherType枚举。

3.如果您已经在代码中创建了Enum类型,那么您可以将其用作任何实体属性的数据类型。

要使用现有的枚举类型,请右键单击设计器→添加新→枚举类型。 在对话框中输入枚举类型名称。 不要输入您在代码中已经有的成员。

现在,选择“Reference external type”复选框,并输入现有枚举的命名空间,然后单击确定。 这将在模型浏览器中添加枚举类型。 然后,您可以从属性窗口将此枚举类型分配给实体的任何属性。

注意:如果要对Enum使用按位运算符,请选择“Set Flags attribute”。


版权声明:本站所有教程均为本站原创或翻译,转载请注明出处,请尊重他人劳动果实。请记住本站地址:www.yuanjiaocheng.net (猿教程) 作者:卿文刚
本文标题: C#环境
本文地址:http://www.yuanjiaocheng.net/entity/enum-in-entity-framework5.html