Estoy utilizando LINQ to SQL para obtener un resultado de búsqueda de un procedimiento almacenado FullTextSearch en el servidor Sql 2008. Arrastré el procedimiento desde el explorador del servidor al diseñador y obtuve el método creado con el tipo de devolución y los parámetros adecuados. Ahora el problema es que necesito obtener el conteo del resultado de llamar a este método, así que usando mi método de repositorio (que llamará al método Sproc y devolveré el resultado como IQueryable) hago la siguiente llamada.¿Los resultados de la consulta no se pueden enumerar más de una vez?
var result = repository.FullTextSearch(searchText);
int resultsCount = result.Count();
var ret = result.Skip((pageNumber - 1) * PageSize).Take(PageSize).ToList();
Este código genera un InvalidOperationException cada vez que intento ejecutarlo, a excepción dice (sí, lo has adivinado!) "Los resultados de la consulta no se pueden enumerar más de una vez."
El método que se generó para Sproc devuelve ISingleResult que debe ser O.K. HASTA DONDE SE. Necesito apoyar la búsqueda en mi vista, así que necesito saber el número total de páginas, lo cual (AFAIK nuevamente) solo es posible si puedo obtener el conteo de todos los artículos.
¿Qué me falta aquí, muchachos?
Al parecer, la refactorización sugerido por Marc Gravell es la mejor, goona hacer esto una vez que tiene tiempo para ello. ¡Tomo la respuesta de Marc! Gracias otra vez Chicos! – Galilyou