SQL sorgusuna bir LINQ ile çalışıyorum ve veri sonucunu filtrelemek için 4 isteğe bağlı alana sahip olduğum bir soruna girdim. İsteğe bağlı olarak, bir değer girme veya girme seçeneği vardır. Özellikle, bir değere sahip veya boş bir dize ve bir değer seçilmiş ya da belki yoktu olabilirdi listeleri aşağı birkaç damla olabilir birkaç metin kutuları ... ÖrneğinLINQ to SQL Burada Madde Opsiyonel Kriterleri
:
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 });
}
Şimdi Aşağıdaki alanları/filtreleri eklemem gerekiyor, ancak yalnızca kullanıcı tarafından sağlanıyorsa.
- Ürün Numarası - TagsHeaders'a birleştirilebilecek başka bir tablodan gelir.
- PO Numarası - TagsHeaders tablosundaki bir alan.
- Sipariş Numarası - PO # ye benzer, sadece farklı sütun.
- Ürün Durumu - Kullanıcı bunu bir açılır menüden seçtiyse, buradan seçilen değeri uygulamanız gerekir.
Zaten sahip olduğum sorgu harika çalışıyor, ancak işlevi tamamlamak için, bu diğer 4 öğeyi nereye ekleyebilmeniz gerekiyor, yalnızca nasıl olduğunu bilmiyorum!
Kontrol: Burada
IEnumerables için aynı uzatma yöntemidir zaten yanıtlanmış olabilir .. [http://stackoverflow.com/questions/11194/conditional-linq-queries](http://stackoverflow.com/questions/11194/conditional-linq-queries) – jlembke