使用EF 6.1从Model First设计创建枚举值

时间:2014-10-01 16:01:10

标签: c# powershell enums entity-framework-6

我只是想找出如何使用Model First设计在实体中创建一个列作为枚举类型。

在附图中,您可以看到我创建了一个简单的控制台应用程序(在右侧窗格中),并添加了一个EDM模型,其中有一个名为Teacher的实体(左侧)。

我点击了EDM设计器并选择了“添加新枚举类型”(您在中间窗格中看到)。 3种类型是Permanent,Contract和Guest,其各自的值在TeacherType Enum Type 1,2,3。

如何将左窗格中的TeacherType **属性转换为实际上是中间窗格中的枚举值TeacherType?** enter image description here

另外,如果您更新模型而后者将更新数据库,您是否会丢失更改?使用Model First,我相信不是,但有了DataBase First,我相信你会。还有一种方法可以用DataBase First做同样的事情吗?

Code First很好,但我觉得它还有很长的路要走,因为您需要手动执行所有Powershell命令以及所有“额外包袱”,例如在代码中定义关系,FK,种子等。这需要花费大量时间,我觉得可以更快地在设计师中轻松完成并且错误更少。

2 个答案:

答案 0 :(得分:1)

右键单击该属性并选择"转换为枚举"这将创建一个新的枚举或右键单击该属性,然后选择"属性"然后在“属性”窗口中选择"类型"中的枚举类型。行。请注意"转换为枚举"菜单选项仅在属性已经是可以作为枚举的基础类型的类型时显示(即字节,短,整数或长整数 - 注意EDM类型系统不支持无符号类型)。如果您的属性恰好是不同类型(新创建的属性的默认类型是字符串),您将无法看到"转换为枚举" menu选项(因为string不是枚举类型的有效基础类型)。要在菜单中查看此选项,您必须先查看属性并将类型更改为其中一个基础枚举类型。

关于Code First用法 - EF Designer现在支持从数据库创建Code First模型,因此您不必再为现有数据库手动配置关系。

答案 1 :(得分:0)