【发布时间】:2017-07-04 07:06:48
【问题描述】:
我首先使用的是实体框架 5,DB。我知道如何在我的模型上定义一个枚举,并将字段的类型设置为该枚举。
现在,我需要将字段 MyField 映射到外部定义的枚举,即不在 EF 模型 (OtherNamespace.MyEnum) 中。设计师不允许我将类型设置为模型之外的任何内容。我尝试手动编辑 edmx 文件,但这会导致错误:
错误 10016:解析项目“MyField”时出错。异常消息是:'未解析的引用'OtherNamespace.MyEnum'。'。
OtherNamespace.MyEnum 被我的项目引用。
你是怎么做到的?
【问题讨论】:
-
你必须做一些额外的逻辑才能得到它,你可以把它放在 setter 中。
-
@Dunbar 你是什么意思?你能说得更具体点吗?
-
就像在属性设置器中一样,让它设置你真正想要设置的对象的非映射实例。
-
@Dunbar 可以在本地代码中使用,但不能在
IQueryable<MyClass>中使用,例如db.MyClasses.Where(x => x.MyField == OtherNamespace.MyEnum.Value2) -
你正在实现的枚举是否对每个枚举值都有已知的整数表示?
标签: c# entity-framework-5 ef-database-first