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

// 获取类别表数据

var typeIDList = new List<int> { 2, 3, 4, 5, 6, 7 };
var typeList = db.T_Dictionary
.Where(d => typeIDList.Contains(d.TypeID))
.Select(d => new { d.TypeID, d.DKey, d.DValue }).ToList();

//获取植物的数据

var data = db.T_Plants2.Where(d => d.PlantID == id).Select(p => new Plants
{
PlantID=p.PlantID,
Family=p.Family,
//根据id,获取类别名称
//OriginName = (typeList.Where(d => d.TypeID == 2 && d.DKey == p.Origin).Select(d => d.DValue).FirstOrDefault()),//报错
}).FirstOrDefault();

正确做法

if (data != null)
{
  data.OriginName = typeList.Where(d => d.TypeID == 2 && d.DKey == data.Origin).Select(d => d.DValue).FirstOrDefault();

}

// 数据接收模型
public class Plants
{

public int PlantID { get; set; }
public string Family { get; set; }

public string OriginName { get; set; }

}

原文地址:https://www.cnblogs.com/hao-1234-1234/p/11697558.html

时间: 2024-11-09 23:52:53

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

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

Entity FreamWork 无法创建“System.Object”类型的常量值.此上下文仅支持基元类型或枚举类型错误解决: 最近在开发中把我原来抄的架构里面的主键由固定的Guid改成了可以泛型指定的类型,结果,发现执行EF在查询的时候,不能支持equal,只能用==,理由很简单,因为equal是object的方法,虽然所有的类都是object的子类,但是ef不支持复杂类型的直接检索,只能用简单类型,比如常用的string,int,guid,这些,都可以做==,也可以用来检索.但是比如Per

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

源代码 错误:无法创建类型的常量值.此上下文仅支持基元类型或枚举类型. 报错原因就是因为下面标红的那一行 //hourApplys 的类型是IQueryable var hourApplys = hourApplyList.OrderBy(h => h.Id).Skip((pageIndex - 1) * pageSize).Take(pageSize); var list = from h in hourApplys select new HourApplyVM { Id = h.Id, Us

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

Entity FreamWork 无法创建“System.Object”类型的常量值.此上下文仅支持基元类型或枚举类型错误解决: 最近在开发中把我原来抄的架构里面的主键由固定的Guid改成了可以泛型指定的类型,结果,发现执行EF在查询的时候,不能支持equal,只能用==,理由很简单,因为equal是object的方法,虽然所有的类都是object的子类,但是ef不支持复杂类型的直接检索,只能用简单类型,比如常用的string,int,guid,这些,都可以做==,也可以用来检索.但是比如Per

无法将类型“System.Nullable`1”强制转换为类型“System.Object”。LINQ to Entities 仅支持强制转换 EDM 基元或枚举类型。

在一个项目中使用LINQ和EF时出现了题目所示的异常,搜索了很多资料都找不到解决办法,主要是因为EF方面的知识欠缺. 先将情况记录如下,以供以后参考. 查询主要设计两张表,由外键关联: 在进行下面的查询时,出现异常:无法将类型“System.Nullable`1”强制转换为类型“System.Object”.LINQ to Entities 仅支持强制转换 EDM 基元或枚举类型. public ActionResult GetIpSegments() { //List<Ipsegment>

深入理解Java枚举类型(enum)

[版权申明]未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) http://blog.csdn.net/javazejian/article/details/71333103 出自[zejian的博客] 关联文章: 理解Java位运算 深入理解Java类型信息(Class对象)与反射机制 本篇主要是深入对Java中枚举类型进行分析,主要内容如下: 理解枚举类型 枚举的定义 枚举实现原理 枚举的常见方法 Enum抽象类常见方法 编译器生成的Values方法与ValueOf方法 枚举与Clas

RTL基本知识:使用枚举类型表示状态机进入死循环

在定义状态机中的状态时,除了可以使用宏(define)或者参数(parameter)声明定义外,还可以使用枚举类型,但是如果对于枚举类型使用不正确的话,极易出现编译仿真均没有报错,但是仿真时状态机跳转异常的情况.本文将针对这种情况进行示例说明并给出解决方法. 1  数据类型 在Verilog中所有的变量和线网都是4值数据类型,但在SystemVerilog中,对信号类型和数据类型进行了详细的区分,其中信号类型保持与Verilog一样,主要分为变量和线网类型,但是数据类型分为了2值类型(0和1)和

你好,C++(13)这道单选题的答案是A、B、C还是D?3.7 枚举类型

3.7  枚举类型 除了之前我们介绍的数值数据和文字数据之外,在现实世界中,常常还会遇到这样一类数据:一道单选题的答案只能是A.B.C.D四个选项中的某一个:红绿灯的颜色只能是红色,绿色和黄色中的某一种:一个人的性别只能是男性或者女性.这种数据都只有有限的几种可能值,其值也只能是这个范围内的某一个.为了抽象和表达这种特殊数据,C++提供了枚举机制. 使用C++的枚举机制,我们可以通过列举某种数据的所有可能值来定义一种新的数据类型,这种数据类型通常被称为枚举类型.反过来,当使用枚举类型来定义变量时

(转载)你好,C++(13)这道单选题的答案是A、B、C还是D?3.7 枚举类型

你好,C++(13)这道单选题的答案是A.B.C还是D?3.7 枚举类型 3.7  枚举类型 除了之前我们介绍的数值数据和文字数据之外,在现实世界中,常常还会遇到这样一类数据:一道单选题的答案只能是A.B.C.D四个选项中的某一个:红绿灯的颜色只能是红色,绿色和黄色中的某一种:一个人的性别只能是男性或者女性.这种数据都只有有限的几种可能值,其值也只能是这个范围内的某一个.为了抽象和表达这种特殊数据,C++提供了枚举机制. 使用C++的枚举机制,我们可以通过列举某种数据的所有可能值来定义一种新的数

C#中的基元类型、值类型和引用类型

C# 中的基元类型.值类型和引用类型 1. 基元类型(Primitive Type) 编译器直接支持的类型称为基元类型.基元类型可以直接映射到 FCL 中存在的类型.例如,int a = 10 中的 int 就是基元类型,其对应着 FCL 中的 System.Int32,上面的代码你完全可以写作System.Int32 a = 10,编译器将生成完全形同的 IL,也可以理解为 C# 编译器为源代码文件中添加了 using int = System.Int32. 1.1 基元类型的算术运算的溢出检