Message LINQ to Entities 无法识别 System.Object Get(Int32, Int32) 方法 [重复]
Posted
技术标签:
【中文标题】Message LINQ to Entities 无法识别 System.Object Get(Int32, Int32) 方法 [重复]【英文标题】:Message LINQ to Entities does not recognize the method System.Object Get(Int32, Int32) method [duplicate] 【发布时间】:2017-11-16 13:07:59 【问题描述】:我正在尝试从 Linq 获取列表到实体查询
List<int> meas_i = wc.measures
.Where(meas => meas.shortname == (valueArray[i, 8] ?? "").ToString())
.Select(meas => meas.idmeasure)
.ToList<int>();
但执行后我得到以下异常(不支持)消息:
ComplexWorkWinDraw.exe 中出现“System.NotSupportedException”类型的未处理异常
附加信息:LINQ to Entities 无法识别该方法 'System.Object Get(Int32, Int32)' 方法,而这个方法不能 翻译成商店表达式。
请帮忙。谢谢大家
【问题讨论】:
***.com/help/someone-answers 【参考方案1】:尝试在查询之前将其存储在变量中:valueArray[i, 8]
string shortName = (valueArray[i, 8] ?? "").ToString();
List<int> meas_i = wc.measures
.Where(meas => meas.shortname == shortName)
.Select(meas => meas.idmeasure)
.ToList<int>();
此查询中的所有内容都必须转换为 SQL。但由于此值与记录/项目无关,您可以在查询之前将其存储在单独的变量中。
【讨论】:
没关系。非常感谢以上是关于Message LINQ to Entities 无法识别 System.Object Get(Int32, Int32) 方法 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
Linq-to-Entities:带有 WHERE 子句和投影的 LEFT OUTER JOIN