2016-02-23 28 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

如果您需要更多的幫助,您需要包含示例代碼,例如方法主體給您帶來問題。這個問題似乎與你構建查詢的方式一樣。 –

相關問題