LINQ to EntitiesとString.StartsWithの問題

.net entity-framework linq linq-to-entities

質問

LINQ to Entitiesを使用して検索ページを作成しようとしていますが、次のコードでは、 '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は合法ですか? はい、理由を学ぶ