EF 6 DB-First系列--Entity Framework中的Enum

Entity Framework中的Enum

Enum在Entity Framework 5.0以后得到支持。可以为以下数据类型创建Enum:

  • Int16
  • Int32
  • Int64
  • Byte
  • SByte

Enum可以在以下情况下使用:

1、从EDM设计器将实体的现有属性转换为枚举类型。

2、使用来自不同命名空间的现有enum类型。

将现有属性转换为Enum

在这里,我们将使用Teacher表中的TeacherType整型列。枚举值1代表永久教师,2代表合同工教师,3代表客座教师。
在这里插入图片描述
现在,要从设计器中将TeacherType属性转换为枚举类型,右键单击Teacher实体的TeacherType属性,然后单击上下文菜单中的convert to enum,如下所示。

在这里插入图片描述
它将打开“Add Enum Type”对话框。输入Enum类型名称,并在“Underlying Type”下拉框中选择int32。输入枚举成员名,如下所示。
在这里插入图片描述
这将在模型浏览器中将TeacherType添加为Enum类型,如下所示:

在这里插入图片描述
同样,你可以看到TeacherType属性的类型被转换为TeacherType Enum:

在这里插入图片描述
现在,您可以使用TeacherType Enum来分配一个TeacherType值,而不是一个整数值,如下所示。

using (var ctx = new SchoolDBEntities())
{
    Teacher tchr = new Teacher();
    tchr.TeacherName = "New Teacher";

    //赋一个枚举值
    tchr.TeacherType = TeacherType.Permanent;

    ctx.Teachers.Add(tchr);

    ctx.SaveChanges();
}

使用不同命名空间中的现有Enum

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

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

现在,选择“引用外部类型”复选框,输入现有枚举的名称空间,然后单击OK。这将在Model浏览器中添加Enum类型。现在,您可以将此Enum类型分配给属性窗口中任何实体的任何适当属性。

注意:如果你想对你的Enum使用位操作符,选择“Set Flags属性”。

参考

https://www.entityframeworktutorial.net/
https://msdn.microsoft.com/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值