【问题标题】:The LINQ expression '(str1.CompareTo(str2) < 0)' could not be translated and will be evaluated locally无法翻译 LINQ 表达式“(str1.CompareTo(str2) < 0)”,将在本地计算
【发布时间】:2016-02-25 03:54:00
【问题描述】:

我正在尝试在 LINQ 中进行字母比较,但无法在 SQL 中编译表达式。

有什么提示吗?

建议的答案不起作用。我明白了:

The LINQ expression '(Compare([f].str1, str2, Ordinal) < 0)' could not be translated and will be evaluated locally.

更新:我正在使用 http://www.albahari.com/nutshell/predicatebuilder.aspx 中的 PredicateBuilder

【问题讨论】:

标签: entity-framework linq


【解决方案1】:

你需要使用string.Compare(...)

.Where(e => string.Compare(str1, str2, StringComparison.OrdinalIgnoreCase) < 0)

【讨论】:

  • 其实第三个参数没关系,string.Compare(str1, str2)就足够了。
  • 它仍然不喜欢它:无法翻译 LINQ 表达式 '(Compare([f].str1, str2, Ordinal)
  • 如果您需要更多帮助,您需要包含示例代码,例如给您带来问题的方法主体。问题似乎在于您构建查询的方式。
  • 我正在使用这个类来构建我的查询:albahari.com/nutshell/predicatebuilder.aspx
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-28
  • 1970-01-01
  • 2022-12-03
  • 2010-09-16
  • 1970-01-01
相关资源
最近更新 更多