When we call a query operator on a sequence, a sequence-specific operator gets called.
I mean if i call Where<>()
operator on IEnumerable<>
, the operator that will be called will be defined in Enumerable class and if it's called on IQueryable<>
, the one defined in Queryable class will be called.
Consider the operator Reverse, defined in the Enumerable class.
If i want to call it on Iqueryable<>
then I must use the AsEnumerable<>()
operator to first convert it into IEnumerable<>
.
db.Countries.OrderBy(cntry=>cntry.CountryName).AsEnumerable().Reverse()
But the Reverse operator got to have all records at the same time so that it can reverse them.
In the above code do all the records get loaded in memory first and then the Reverse() operator is reversing it ?