Tengo dos métodos muy similares:¿Por qué mi declaración LINQ devuelve IEnumerable?
public IQueryable<User> Find(Func<User, bool> exp)
{
return db.Users.Where(exp);
}
public IQueryable<User> All()
{
return db.Users.Where(x => !x.deleted);
}
La de arriba, no se compilará, diciendo que devuelve IEnumerable en lugar de IQueryable.
¿Por qué es esto?
Además, soy consciente de que puedo agregar "AsQueryable()" al final y funcionará. ¿Qué diferencia hace eso? Cualquier golpe de rendimiento? Entiendo que IQueryable ha diferido la ejecución y tal, ¿todavía obtendré este beneficio?
Un buen Sr. Skeet, gracias. – qui