¿IEnumerable <T> y IQueryable <T> clarificación?
Despues de leeresta Pregunta, necesito aclarar algunas cosas.
IQueryable<Customer> custs = from c in db.Customers
where c.City == "<City>"
select c;
IEnumerable<Customer> custs = from c in db.Customers
where c.City == "<City>"
select c;
Preguntas:
1) ¿Está bien decir que: en la primera consulta, SQLServer está ejecutando toda la operación, incluida la cláusula where y la devolución?SOLAMENTE las filas relevantes - mientras que la segunda lo haceSELECT *
... y devuelvetodos filas en C # yENTONCES filtros?
2) ¿Qué pasa si tengo uncolección meramente - en la memoria. (var lstMyPerson = new List<MyPerson>()
)
IQueryable<MyPerson> lst = from c in lstMyPerson
where c.City == "<City>"
select c;
vs
IEnumerable<MyPerson> custs = from c in lstMyPerson
where c.City == "<City>"
select c;
¿Cuál será la diferencia en la ejecución ahora?