Instantiate empty IQueryable for use with Linq to sql

asp.net-mvc, c#, iqueryable, linq, linq-to-sql

Solution

Try this:

IQueryable<opportunity_vw> listOppLineData;

This is defining the variable, but you are waiting to initialise it.

Also, looking at your query, you could do it all in one, like so:

var listOppLineData = (from o in db.opportunity_vws
                      where o.fiscal_yr_and_qtr == qtr && (o.Group == whichGroup || whichGroup == "All")
                      select o
                      );

Problem

I need to be able to either have an optional parameter in a Linq query, or be able to assign the query to a var in something like an IF if that optional parameter needs to be removed from the query. If I set the query var inside the IF statement then it tells me that the var doesn't exist in context when I try to loop through it. ``` if (whichGroup == "All") { var listOppLineData = (from o in db.opportunity_vws where o.fiscal_yr_and_qtr == qtr select o ); } else { var listOppLineData = (from o in db.opportunity_vws where o.fiscal_yr_and_qtr == qtr && o.Group == whichGroup select o ); } foreach (var data in listOppLineData) //listOppLineData doesn't exist here { ... ``` I need to set the var before the IF statement I think, but I don't know what to set it to. ``` var listOppLineData = ""; // gives me Cannot implicitly convert type 'System.Linq.IQueryable<Forecast.Models.opportunity_vw>' to 'string' IQueryable listOppLineData = new IQueryable(); //gives me Cannot create an instance of the abstract class or interface 'System.Linq.IQueryable' ```

Original source

Related problems