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

如果存在-UPDATE-else-INSERT 与 Linq-to-Entities?

LINQ to Entities 选择新建

在 LINQ to Entities 中批量删除

Linq to Entities - 3 层架构

LINQ to Entities 无法识别方法“布尔包含 [Int32]