2012-02-10 10 views
0

LINQで2つのSqlMethods.Likeステートメントが必要ですが、これを達成する方法がわかりません(または、正しい方法であれば)。LINQ - または2つのSqlMethods.Like節

私はベンダーIDフィールドとベンダー名フィールドを持っていますが、ユーザーが名前またはIDに基づいてベンダーを検索できる汎用ベンダー検索しかありません。また、検索でワイルドカードを使用できるようにするため、IDまたは名前がユーザーの入力に似ているベンダーを探す必要があります。

私は以下のようなことをしたいと思いますが、明らかに正しくありません。 (編集:書かれたようには動作しない。)

results = results.Where(p => SqlMethods.Like(p.VendorId, inputVendor.Replace("*", "%") || 
          SqlMethods.Like(p.VendorName, inputVendor.Replace("*", "%")); 

背景:私は追加ここしたがって、ユーザが入力した検索パラメータ、結果= results.Where部に応じ文。

ご協力いただければ幸いです!

答えて

2

なぜ「明らかに」正しくないのかはわかりません。おそらくそれは動作していない、そうでなければ投稿していないが、それは明らかではないどのようにそれは動作していません。

私はこのように、前にクエリを交換を実行することをお勧め:あなたは、これらに限定されている。もちろん、

results = results.Where(p => SqlMethods.Like(p.VendorId, vendorPattern) || 
          SqlMethods.Like(p.VendorName, vendorPattern)); 

string vendorPattern = inputVendor.Replace("*", "%"); 

しかし、私はこれが動作することを期待したいですSQL LIKEクエリではワイルドカードを使用できますが、それは別の問題です。 (開始時または終了時に動作がわからない場合は、私はその動作がわかりません。)

これは役に立ちません。

+0

それはうまくいった。私の問題は、私がSOの質問のためにそれをタイプしたときにしなかった(私は他のもののように入れ子になった)私が見なかったコードのタイプミスでした。 –

関連する問題