Supponiamo di avere una tabella denominata Popolazione che memorizza alcuni dati demografici. In T-SQL, per ottenere il numero di persone con più di 50 anni, avrei potuto fare qualcosa di simile:Linq recupera prima tutti i record se eseguo un conteggio?
SELECT COUNT(*) FROM POPULATION
WHERE AGE > 50
ho pensato la seguente dichiarazione LINQ avrebbe funzionato, ma restituisce solo zero e non capisco perché.
var count = _context.Population.Count(x => x.Age > 50);
in modo per me per ottenere effettivamente il conteggio, devo fare una delle seguenti operazioni:
var count = _context.Populaton.Where(x => x.Age > 50).Count();
var count = _context.Population.Select(x => x.Age > 50).Count();
Perché sono gli scenari di cui sopra il caso?
Ci sono dettagli di implementazione che stai tralasciando? context.TableName.Count (x => x.SomeCondition); funziona bene per me – jeffora
La tua prima istruzione LINQ * dovrebbe * funzionare come le ultime due. Sembra un problema con il provider. Quale fornitore LINQ stai usando? – Greg
La risposta selezionata per questa domanda è errata e irrilevante. C'è qualcos'altro, molto probabilmente con il provider di query che stai usando. – jason