消息LINQ to Entities无法识别方法System.Object Get(Int32,Int32)方法

时间:2017-11-16 13:08:00

标签: c# entity-framework linq

我正在尝试从Linq获取List到实体查询

List<int> meas_i = wc.measures
   .Where(meas => meas.shortname == (valueArray[i, 8] ?? "").ToString())
   .Select(meas => meas.idmeasure)
   .ToList<int>();

但是在执行后我获得了以下异常(不支持)消息:

  

未处理的类型&#39; System.NotSupportedException&#39;发生在ComplexWorkWinDraw.exe

中      

其他信息:LINQ to Entities无法识别该方法   &#39; System.Object Get(Int32,Int32)&#39;方法,这个方法不能   翻译成商店表达。

请帮忙。感谢所有

1 个答案:

答案 0 :(得分:3)

尝试在查询之前将其存储在变量中: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。但由于此值与记录/项目无关,因此您可以在查询之前将其存储在单独的变量中。