2016-10-20 12 views
2

System.Linq.Dynamic dllをインストールして、LinqのWHERE句のパラメータとして文字列を追加しようとしました。しかし、私はまだWHERE句で文字列パラメータがサポートされているというエラーが発生しています。linqの動的文字列#

コード:

_dbContext.TmRecords.Where("city=london"); 

エラー:

Severity Code Description Project File Line Error CS1503 Argument 2: cannot convert from 'string' to 'System.Linq.Expressions.Expression>' Extranet.Domain

ここ

街のパラメータを動的に他のいくつかのパラメータを変更します。だから、私はlinqで動的クエリを使用する必要があります。

+0

また、このようなクエリを書き直す '_dbContext.TmRecords.Where(レコード=> record.city = "ロンドン");' –

+0

が重複する可能性を[LINQの動的WHERE句](http://stackoverflow.com/questions/848415/dynamic-where-clause-in-linq) –

+1

@マークそれについて[ダイナミックLinq](https://weblogs.asp.net/scottgu/dynamic-linq-part-1-using-linq-dynamic-query-library)、普通のLinqではない – Kilazur

答えて

7

ファイルにusing System.Linq.Dynamic;を追加する必要があります。など、あなたが述語を作成する必要が

_dbContext.TmRecords.Where("city = @0", "london"); 
+0

'@ 0 'を使うことは必要なのでしょうか?ありがとう、これも私を助けた:) – Roy123

+0

私はラムダ式でそれを使用することができます同じもの? –

+2

必要はありません。代わりに '' City == \ "london \" "'を使うことができますが、パラメータ化されたものを使うと読みやすくなります。 @Roy_Dorsthorst – dotctor