无法创建“System.Object”类型的常量值。此上下文仅支持基元类型或枚举类型

Posted jasonlai2016

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法创建“System.Object”类型的常量值。此上下文仅支持基元类型或枚举类型相关的知识,希望对你有一定的参考价值。

Entity FreamWork 无法创建“System.Object”类型的常量值。此上下文仅支持基元类型或枚举类型错误解决:

最近在开发中把我原来抄的架构里面的主键由固定的Guid改成了可以泛型指定的类型,结果,发现执行EF在查询的时候,不能支持equal,只能用==,理由很简单,因为equal是object的方法,虽然所有的类都是object的子类,但是ef不支持复杂类型的直接检索,只能用简单类型,比如常用的string,int,guid,这些,都可以做==,也可以用来检索。但是比如Person对象,虽然可以做==,但不能用于EF的检索。

最终解决方案,把firstOrDefault方法改成用find方法,EF提供的,就可以了。

以上是关于无法创建“System.Object”类型的常量值。此上下文仅支持基元类型或枚举类型的主要内容,如果未能解决你的问题,请参考以下文章

无法创建类型为“x”的常量值。此上下文仅支持原始类型或枚举类型

EF 迁移种子 - 无法创建“Application.Model.TranslationItem”类型的常量值

实体框架,无法创建类型为“XX”的常量值。此上下文仅支持原始类型或枚举类型

无法创建类型为“EShop.ClassLibrary.ProductType”的常量值。此上下文仅支持原始类型或枚举类型

LINQ 查询以从分组中查找最小值 - 无法创建类型为“X”的常量

无法创建“匿名类型”类型的常量值。此上下文仅支持基元类型或枚举类型。