LINQ to SQL Where Clause Optional Criteria
        Posted  
        
            by RSolberg
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by RSolberg
        
        
        
        Published on 2009-03-10T21:50:08Z
        Indexed on 
            2010/06/11
            19:33 UTC
        
        
        Read the original article
        Hit count: 290
        
I am working with a LINQ to SQL query and have run into an issue where I have 4 optional fields to filter the data result on. By optional, I mean has the choice to enter a value or not. Specifically, a few text boxes that could have a value or have an empty string and a few drop down lists that could have had a value selected or maybe not...
For example:
    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 });
    }
Now I need to add the following fields/filters, but only if they are supplied by the user.
- Product Number - Comes from another table that can be joined to TagsHeaders.
- PO Number - a field within the TagsHeaders table.
- Order Number - Similar to PO #, just different column.
- Product Status - If the user selected this from a drop down, need to apply selected value here.
The query I already have is working great, but to complete the function, need to be able to add these 4 other items in the where clause, just don't know how!
© Stack Overflow or respective owner