- IEnumerable existe en System.Collections Espacio de nombres.
- IEnumerable puede avanzar sólo sobre una colección, no puede moverse hacia atrás y entre los elementos.
- IEnumerable es mejor para consultar datos en memoria de colecciones como Lista, Array etc.
- Si bien los datos de consulta de base de datos, IEnumerable ejecuta consulta de selección del lado del servidor, los datos están en memoria en el lado del cliente.
- IEnumerable es adecuado para LINQ a objetos y LINQ para consultas XML.
- IEnumerable soporta ejecución diferida.
- IEnumerable no soporta consulta personalizada.
- IEnumerable no soporta carga diferida (Lazy Loading). Por lo tanto no es adecuado para la paginación.
IQueryable
- IQueryable existe en System.Linq Espacio de nombres.
- IQueryable puede avanzar sólo sobre una colección, no puede moverse hacia atrás y entre los elementos.
- IQueryable es mejor para consultar datos que no estén en memoria (como base de datos remota, servicio) colecciones.
- Si bien los datos de consulta de base de datos, IQueryable ejecuta consulta de selección en el lado del servidor con todos los filtros.
- IQueryable es adecuado para LINQ to consultas SQL.
- IQueryable soporta ejecución diferida.
- IQueryable soporta una consulta personalizada utilizando CreateQuery y ejecución de métodos.
- IQueryable soporta carga diferida (Lazy Loading). Por lo tanto es adecuado para paginación.
No hay comentarios:
Publicar un comentario