Entity Frameworkのオペレータのようなもの?

.net entity-framework linq-to-entities sql-server

質問

文字列フィールドを持つエンティティに対してEntity Frameworkで "LIKE"演算子を実装しようとしていますが、サポートされていないようです。他の誰かがこのようなことをやろうとしたことがありますか?

このブログ記事は私達が抱えている問題を要約しています。 containsを使用することもできますが、これはLIKEの最も単純なケースにしか一致しません。 contains、startswith、endswith、およびindexofを組み合わせると、そこに移動できますが、標準のワイルドカードとLinq to Entitiesコード間の変換が必要です。

受け入れられた回答

これは今のところ古い投稿ですが、答えを探している人にはこのリンクが役立ちます。

短縮版:

SqlFunctions.PatIndexメソッド - すべての有効なテキストおよび文字データ型において、指定された式で最初に出現したパターンの開始位置、またはパターンが見つからない場合はゼロを返します

名前空間:System.Data.Objects.SqlClientアセンブリ:System.Data.Entity(System.Data.Entity.dll内)

このフォーラムのスレッドにも少し説明があります


人気のある回答

私はEFについて実際には何も知りませんが、LINQ to SQLでは通常String.Containsを使ってLIKE節を表現します。

where entity.Name.Contains("xyz")

に変換します

WHERE Name LIKE '%xyz%'

(他の動作にはStartsWithEndsWithを使用してください。)

LIKEを実装しようとしていると言っても、その意味が理解できないので、それが役に立つかどうかはまったくわかりません。私が完全に誤解しているならば、私に知らせてください、そして私はこの答えを削除します:)



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ