2017-02-15 6 views
0

内のクエリのように私は今、私はこのような何かをPostgreSQLの とEntity Frameworkの操作を行いいます
いくつかのフレーズ など。は、エンティティフレームワーク6

raw SQLを使用しないlinqまたは他のタイプのクエリで同じクエリを実行するにはどうすればよいですか?

文字列の先頭から部分+部分から中間、部分から末尾まで必要です。正規表現のようなもの。ポストグルでは、%記号で行うことができます

+0

正規表現のhttpのためにこれを試してみてください:// buildregex.com/ – Eldho

+0

ここで私の答えを見て:http://stackoverflow.com/questions/1040380/wildcard-search-for-linq/42307642#42307642 私はそれがPostgreSQLでも動作するのかどうかはわかりませんが、私はそれがあるので、それがないと思うstr_posとpositionのような同等の関数。 –

答えて

1

私のオリジナルの答えが間違っていた(OPに私の謝罪。)

あなたはName.StartsWith、Name.EndsWith、またはName.Containsを行うことができます。

さらに、Devart.Data.PostgreSql.Entity.PgSqlFunctionsを使用してLIKE比較を行うことができます。すなわち

where PgSqlFunctions.Like(PgSqlFunctions.Lower(c.Name), PgSqlFunctions.Lower(pattern)) 

よろしく、

AB

PS:あなたがそのような検索を必要とする多くのデータを持っている場合はトライグラムインデックスをチェックアウト - https://www.postgresql.org/docs/9.6/static/pgtrgm.html

0

これを試すことができます。

var result = context.Products.Where(h=>h.Name.Contains("TestPhrase") || 
            h.Code.Contains("TestPhrase")) 
          .ToList(); 
+0

検索条件が** "some%phrase" **で、結果が** "いくつかのテストフレーズ" ** –

+0

である必要がある場合 – Eldho

+0

@dmkあなたの意図を修正するために質問を更新できるか – Eldho

関連する問題