2016-02-23 27 views
-1

我试图在LINQ的字母来进行评估,但表达的不能在SQL编译。的LINQ表达式“(str1.CompareTo(STR2)<0)”无法翻译,将在当地

任何提示?

建议的答案不起作用。我得到:

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

+1

如果str是字符串只写(STR1 Seb

+2

@Seb的PredicateBuilder:你如何期望甚至编译?没有'<(string,string)'操作符。 –

+0

@Seb您不能测试对字符串 –

回答

2

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

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

其实第三个参数并不重要,所以'string.Compare(str1,str2)'就足够了。 –

+0

它仍然不喜欢它: 的LINQ表达“(比较([F] .str1,STR2,序号)<0)”不能被翻译,并且将在本地评价。 – user2715109

+0

如果您需要更多的帮助,您需要包含示例代码,例如方法主体给您带来问题。这个问题似乎与你构建查询的方式一样。 –

相关问题