开发者

System.Linq.IQueryable does not contain a definition for 'Where'

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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜