I'm simply wondering why there is a IQueryable<T> version without the generic capability ?
The generic
IQueryable<T>is the one you use most often in method signatures and the like. The non-genericIQueryableexist primarily to give you a weakly typed entry point primarily for dynamic query building scenarios.
by Matt Warren from LINQ: Building an IQueryable Provider - Part I
You should use generic IQueryable<T> everywhere it's possible.
I imagine it's the same reason as Jon Skeet gives in Difference between IEnumerable and IEnumerable<T>? , to allow use in a foreach loop. IQuerable would be castable to IEnumerable, whereas IQueryable<T> would not.
Also see Marcin's answer about use in dynamic query building scenarios.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With