转换为枚举

时间:2012-11-19 15:46:44

标签: .net entity-framework enums entity-framework-5

我刚刚使用Visual-Studio 2012 Professional并使用了Entity-Framework(5.0)设计器。我一直在尝试将属性转换为枚举,并根据this Microsoft video我右键单击属性并在(2:06)选择Convert to Enum - 在我的上下文菜单中没有转换选项

这里我试图将角色转换为枚举。我已将Role设置为Int32。

enter image description here

我做错了什么?

4 个答案:

答案 0 :(得分:8)

密切关注帖子中的视频后,我打开Model Browser手动添加枚举。在我这样做之后,将角色设置为我创建的枚举。为了测试我现在是否可以在属性上Convert To Enum,我将类型更改回Int32,然后右键单击属性并且低,看到我在上下文菜单中看到Convert To Enum选项!

因此,如果您遇到问题这些是我用来启用Convert To Enum选项的步骤。在我看来,这是一个黑客攻击,因为现在我不能用新的解决方案和项目重现这种行为。显然,一旦模型浏览器第一次打开(或下面的完整步骤),它现在显示Convert To Enum选项。

-1。我使用快速启动搜索窗口输入Model Browser并打开它。

Model Browser search

-2。在模型浏览器中右键单击Add New Enum Type...,为数据模型选择Enum Types

enter image description here

-3。将您的属性设置为枚举,滚动到组合框中列出的类型的底部,然后选择枚举。

答案 1 :(得分:4)

我也有这个问题!!我将实体框架从4改为4.5,问题解决了! ;)

答案 2 :(得分:3)

当我遇到同样的问题时,解决方案是将Target Framework设置为“.NET Framework 4.5”。

答案 3 :(得分:0)

当您尝试将其转换为枚举属性之前,该属性的类型是什么?转换为枚举选项仅在属性的类型是可以作为枚举基础类型的类型之一时可用 - Edm.Byte,Edm.SByte,Edm.Int16,Edm.Int32或Edm.Int64。如果属性类型不是这些类型之一,则无法直接将其转换为枚举,因为设计人员不知道底层类型应该是什么以及它是否适用于您的数据库更重要。