IEnumerable vs IQueryable
by amerlin
Prendo spunto da alcune domande che mi sono state rivolte in merito all’utilizzo di IEnumerable e di IQueryable. Per molti programmatori, sono considerati equivalenti.
In questo post vedremo le differenze e quando è consigliato usare uno piuttosto che l’altro.
| IEnumerable | IQueryable | |
Namespace |
System.Collections | System.Linq |
Derivata da |
– | IEnumerable |
Esecuzione differita |
Supportata | Supportata |
Lazy Loading |
Non supportato | Supportato |
Funzionamento |
Viene eseguita la query sul server, vengono ritornati i dati e solo allora vengono eseguiti i filtri | Viene eseguita la query sul server, sul server vengono eseguiti i filtri e vengono ritornati i dati |
Consigliato per |
LINQ to Object and LINQ to XML | LINQ to SQL queries |
Query Custom |
Non supportate | Supportate |
Quanto usarlo |
Nelle query di dati on-memory | Nelle query dei dati out-memory (es. database) |
Best Uses |
In memory | Paginazione |
In poche parole, utilizzando IEnumerable vengono recuperati tutti dati dal server, e le operazioni di filtro vengono eseguite sul client.
Utilizzando IQueryable, le query ed i filtri vengono eseguite direttamente sul server, e vengono ritornati al client i dati già filtrati.
Prendo spunto da alcune domande che mi sono state rivolte in merito all’utilizzo di IEnumerable e di IQueryable. Per molti programmatori, sono considerati equivalenti. In questo post vedremo le differenze e quando è consigliato usare uno piuttosto che l’altro. IEnumerable IQueryable Namespace System.Collections System.Linq Derivata da – IEnumerable Esecuzione differita Supportata Supportata Lazy Loading Non…