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

Posted hao-1234-1234

tags:

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

 

// 获取类别表数据

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; }

}

 

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

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

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

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

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

此上下文仅支持原始类型或枚举类型

错误:“在此上下文中仅支持原始类型或枚举类型”