LINQ to Entities和String.StartsWith的問題

.net entity-framework linq linq-to-entities

我正在嘗試使用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的重載。

它應該支持StartsWithEndsWithContains ,所以你可以嘗試:

dp.LastName.StartsWith(searchTerm)

要么:

dp.LastName.ToLower().StartsWith(searchTerm)

然後確保searchTerm也是小寫的。



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因