【问题标题】:Message LINQ to Entities does not recognize the method System.Object Get(Int32, Int32) method [duplicate]Message LINQ to Entities 无法识别 System.Object Get(Int32, Int32) 方法 [重复]
【发布时间】: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)' 方法,而这个方法不能 翻译成商店表达式。

请帮忙。谢谢大家

【问题讨论】:

标签: c# entity-framework linq


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

【讨论】:

  • 没关系。非常感谢
猜你喜欢
  • 1970-01-01
  • 2011-07-11
  • 1970-01-01
  • 2023-04-01
  • 2016-09-07
  • 2020-07-23
  • 1970-01-01
  • 1970-01-01
  • 2014-06-06
相关资源
最近更新 更多