mysky0103 2022-11-09 18:55 采纳率: 0%
浏览 23

LINQ to Entities 不识别方法"System.String ToString()"

问题遇到的现象和发生背景

LINQ to Entities 不识别方法"System.String ToString()"

.net framework 用的时候 ef 不是 efcore 以前linq中 使用tostring 都没报错 ,现在突然就不可以了 请求生命原因

用代码块功能插入代码,请勿粘贴截图
  • 写回答

1条回答 默认 最新

  • _东_ 2022-11-10 11:16
    关注

    在linq 中使用 ToString() 的话,问题的出现是因为 ToString() 并没有真正执行,它变成了 MethodGroup,然后被解析并转换为 SQL。 由于没有 ToString() 等效项,因此表达式失败。你得把参数单独拎出来定义个变量赋值,然后在linq 中使用它:

    var strItem = item.Key.ToString();
    IQueryable<entity> pages = from p in context.pages
                               where  p.Serial == strItem
                               select p;
    

    具体问题细节你可以参考这个https://stackoverflow.com/questions/5899683/linq-to-entities-does-not-recognize-the-method-system-string-tostring-method,如果理解错了你的问题,能不能把出现问题的linq 语句发出来,好确定问题原因。

    评论

报告相同问题?

问题事件

  • 创建了问题 11月9日