Very odd situation here. For some reason I can't call 'Where', or any other functions, on my IQueryable object.
Here's what I have:
public IQueryable<Employee> Employees
{
get { return _entities.Employees.AsQueryable(); }
}
public ActionResult Index()
{
return View(new HomeViewModel
{
Employees = Employees.Where(e => e.Active == true)
});
}
But Intellisense doesn't pick up the Where function, and I get a Build Error that says:
'System.Linq.IQueryable' does not contain a definitio开发者_Go百科n for 'Where' and no extension method 'Where' accepting a first argument of type 'System.Linq.IQueryable' could be found (are you missing a using directive or an assembly reference?)
But I can call .Where
like this and it works:
public IQueryable<Employee> Employees
{
get { return _entities.Employees.AsQueryable().Where(e => e.Active == true); }
}
I have no idea what's going on.
You need to add a using System.Linq;
(documentation) statement directive in the file where it isn't working. All of the extension methods for IEnumerable/IQueryable are defined in the Enumerable and Queryable classes, respectively.
In order to use extension methods, the class defining the method must be in scope. My guess is that your second code snippet comes from another file where you do have the using statement.
精彩评论