我有一個這樣的表達式:var values = Enumerable.Range(1,2);return message => message.Properties.Any( p => p.Key == name && int.Parse(p.Value) >= values[0] && int.Parse(p.Value) <= values[1]);這樣編譯可以,但是當它命中數據庫時會拋出異常 'LINQ to Entities does not recognize the method 'Int32 Parse(System.String)' method, and this method cannot be translated into a store expression '如果我不進行分析并且將值設置為a string[],則不能在字符串上使用>=and <=運算符。p.Value 是一個包含各種值的字符串,但是在這種情況下,它是 int有沒有一種方法可以查詢數據庫以執行這種之間的語句?
3 回答

瀟瀟雨雨
TA貢獻1833條經驗 獲得超4個贊
我最近不得不在LINQ查詢中將字符串(數字表示形式)轉換為枚舉值,而沒有實現查詢。我的枚舉使用0到9之間的int值,所以我最終做了這樣的事情:
.Select(str => (MyEnum?)(SqlFunctions.Unicode(str) - 48))
我知道這不能為問題提供完整的解決方案,但是在像我這樣的情況下它肯定可以工作。也許有些人會發現它有用。
- 3 回答
- 0 關注
- 863 瀏覽
添加回答
舉報
0/150
提交
取消