EF5枚举映射到外部类型问题

时间:2012-09-17 09:04:33

标签: entity-framework-5

这只是我还是这似乎不起作用?

在模型中我首先拖入一个简单的表并创建一个枚举(通过转换为枚举)。现在我已尝试在对话框中创建枚举项目,但如果我勾选参考外部类型,我会得到:

  

指定的架构无效。错误:没有相应的对象层   可以找到概念类型的类型   'ControlPanelDevModel.EventType'。

2 个答案:

答案 0 :(得分:12)

好的作为上面的补充,我发现在将外部枚举映射到数据类型tinyint时,我遇到了同样的错误。

解决方案是让您的Enum继承自此帖子中指定的“byte”类型。

Tinyint(byte),SmallInt(Int16) not compatible with Enum in EF5

答案 1 :(得分:9)

看一下我的博客文章 - 它展示了如何创建和使用外部枚举类型:http://blog.3d-logic.com/2012/09/11/using-exisiting-enum-types-in-entity-framework-5/ 如果您使用的是.NET Framework 4.5附带的EF5 RTM(而不是EF June CTP 2011),则无需指定EDM枚举类型的成员。重要的是要确保EDM枚举类型名称与外部CLR枚举类型的名称匹配,并且基础类型是相同的(如果没有指定基础类型,将使用Edm.Int32 - 类似于C#/ VB。 NET - 使用int)。 如果您决定在EDM枚举类型上分离成员,则您的名称和/或值不得与C#/ VB枚举类型成员不同。您也不必在EDM枚举类型中指定CLR枚举类型的所有成员(事实上,正如我在上面指出的那样,您可能没有任何成员,并且一切都应该有效)。