Подтвердить что ты не робот

System.Linq.IQueryable не содержит определения для 'Where'

Здесь очень странная ситуация. По какой-то причине я не могу назвать "Где" или любые другие функции для моего объекта IQueryable.

Вот что у меня есть:

public IQueryable<Employee> Employees
{
    get { return _entities.Employees.AsQueryable(); }
}


public ActionResult Index()
{
    return View(new HomeViewModel
        {
            Employees = Employees.Where(e => e.Active == true)
        });
}

Но Intellisense не поднимает функцию Where, и я получаю сообщение об ошибке сборки:

'System.Linq.IQueryable' не содержит определения для "Где" и не имеет метода расширения "Где" может быть найден первый аргумент типа "System.Linq.IQueryable" (вам не хватает директивы using или ссылка на сборку?)

Но я могу назвать .Where следующим образом:

public IQueryable<Employee> Employees
{
    get { return _entities.Employees.AsQueryable().Where(e => e.Active == true); }
}

Я понятия не имею, что происходит.

4b9b3361

Ответ 1

Вам нужно добавить "используя System.Linq;" statement в файле, где он не работает. Все методы расширения для IEnumerable/IQueryable определены в классах Enumerable и Queryable, соответственно.

Чтобы использовать методы расширения, класс, определяющий метод, должен быть в области. Я предполагаю, что ваш второй фрагмент кода происходит из другого файла, в котором у вас есть оператор using.