Dot-Net
LINQ to Entities 和 String.StartsWith 的問題
我正在嘗試使用 LINQ to Entities 建構搜尋頁面,但以下程式碼給了我一個關於 lte 無法辨識“Boolean StartsWith()”的執行時錯誤。程式碼編譯得很好。與將 StartsWith 過濾到儲存過程相比,我怎樣才能更好地解決這個問題?
return from dp in dents.DirectoryPersonEntrySet where ((dp.LastName.StartsWith(searchTerm, StringComparison.CurrentCultureIgnoreCase)) || (dp.Department.StartsWith(searchTerm, StringComparison.CurrentCultureIgnoreCase)) || dp.Extension.StartsWith(searchTerm, StringComparison.CurrentCultureIgnoreCase)) select dp;
我猜 EF 不支持採用 StringComparison 參數的 StartsWith 的重載。
它應該支持StartsWith,EndsWith和Contains,所以也許你可以嘗試:
dp.LastName.StartsWith(searchTerm)要麼:
dp.LastName.ToLower().StartsWith(searchTerm)然後確保它
searchTerm也是小寫的。