mvc inside example c# asp.net linq entity-framework

inside - iqueryable t in c#



System.Linq.IQueryable no contiene una definiciĆ³n para ''Where'' (1)

Situación muy extraña aquí. Por alguna razón, no puedo llamar a ''Dónde'' ni a ninguna otra función en mi objeto IQueryable.

Esto es lo que tengo:

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

Pero Intellisense no capta la función Where y obtengo un error de compilación que dice:

''System.Linq.IQueryable'' no contiene una definición para ''Where'' y no se puede encontrar ningún método de extensión ''Where'' que acepte un primer argumento de tipo ''System.Linq.IQueryable'' (¿falta una directiva using o una referencia de ensamblado? ?)

Pero puedo llamar. .Where así y funciona:

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

No tengo idea de lo que está pasando.


Necesita agregar un "using System.Linq ;" declaración directiva en el archivo donde no está funcionando. Todos los métodos de extensión para IEnumerable / IQueryable se definen en las clases Enumerable y Queryable , respectivamente.

Para usar métodos de extensión, la clase que define el método debe estar dentro del alcance. Supongo que tu segundo fragmento de código proviene de otro archivo donde tienes la instrucción using.