LINQ to SQLクエリを使用しており、データ結果をフィルタリングする4つのオプションフィールドがある問題が発生しました。オプションでは、値を入力するかどうかを選択できます。具体的には、値を持っているか、空の文字列と値が選択されたか、そうでないかもしれない持っている可能性のリストダウンいくつかのドロップを持っている可能性があり、いくつかのテキストボックス...例えばLINQ to SQL Where句オプションの条件
:
using (TagsModelDataContext db = new TagsModelDataContext())
{
var query = from tags in db.TagsHeaders
where tags.CST.Equals(this.SelectedCust.CustCode.ToUpper())
&& Utility.GetDate(DateTime.Parse(this.txtOrderDateFrom.Text)) <= tags.ORDDTE
&& Utility.GetDate(DateTime.Parse(this.txtOrderDateTo.Text)) >= tags.ORDDTE
select tags;
this.Results = query.ToADOTable(rec => new object[] { query });
}
は今次のフィールド/フィルタを追加する必要がありますが、ユーザーによって提供されている場合のみです。
- 製品番号 - タグヘッダーに結合できる別のテーブルから来ます。
- PO Number - TagsHeadersテーブル内のフィールド。
- 注文番号 - PO#と同様、ちょうど異なる列。
- 製品ステータス - ユーザーがドロップダウンからこれを選択した場合、ここで選択した値を適用する必要があります。
私はすでに持っているクエリは素晴らしいですが、関数を完了するには、これらの4つの項目をwhere節に追加する必要があります。
チェックここロスコー、それ:
ここではIEnumerablesに同じ拡張メソッドでありますすでに回答されている可能性があります。 [http://stackoverflow.com/questions/11194/conditional-linq-queries](http://stackoverflow.com/questions/11194/conditional-linq-queries) – jlembke