Actualmente, cuando se necesita para ejecutar una consulta que será utilizado w/paginación lo hago algo como esto:¿Mejor manera de consultar una página de datos y obtener un recuento total en el marco de la entidad 4.1?
//Setup query (Typically much more complex)
var q = ctx.People.Where(p=>p.Name.StartsWith("A"));
//Get total result count prior to sorting
int total = q.Count();
//Apply sort to query
q = q.OrderBy(p => p.Name);
q.Select(p => new PersonResult
{
Name = p.Name
}.Skip(skipRows).Take(pageSize).ToArray();
Esto funciona, pero me preguntaba si es posible mejorar esto sea más eficiente al mismo tiempo usando linq? No se me ocurrió una forma de combinar el recuento con la recuperación de datos en un solo viaje al DB sin usar un proceso almacenado.
Eche un vistazo a [¿Cómo debo exponer el recuento total de registros y la colección IEnumable de registros paginados de mi método de capa de servicio?] (Http://stackoverflow.com/questions/6417886/how-should-i-expose- the-total-record-count-and-ienumable-collection-of-paged-reco/6418761 # 6418761) – Eranga
Interesante, pero parece ser lo mismo que lo que estoy haciendo. Hace 2 llamadas distintas a la base de datos. Uno para el recuento total y otro para la página de datos. –
EF no tiene consultas futuras como nHibernate. Tomará 2 viajes a la base de datos. – Eranga