Supongamos que tengo una tabla llamada Población que almacena algunos datos demográficos. En T-SQL, para obtener el número de los mayores de 50 años, podría hacer algo como esto:¿Linq recupera todos los registros primero si hago un conteo?
SELECT COUNT(*) FROM POPULATION
WHERE AGE > 50
pensé que la siguiente declaración de LINQ iba a funcionar, pero sólo devuelve cero y no entiendo por qué.
var count = _context.Population.Count(x => x.Age > 50);
Para que yo para realmente obtener el recuento, que tengo que hacer cualquiera de las siguientes:
var count = _context.Populaton.Where(x => x.Age > 50).Count();
var count = _context.Population.Select(x => x.Age > 50).Count();
Por qué son los escenarios anteriores el caso?
¿Hay algún detalle de implementación que esté omitiendo? context.TableName.Count (x => x.SomeCondition); funciona bien para mí – jeffora
Su primera declaración LINQ * debería * funcionar igual que las dos últimas. Suena como un problema con el proveedor. ¿Qué proveedor de LINQ estás usando? – Greg
La respuesta que seleccionó para esta pregunta es incorrecta e irrelevante. Está sucediendo algo más, muy probablemente con el proveedor de consultas que está utilizando. – jason