Last and LastOrDefault not supported
either you switch your OrderBy to
.OrderByDescending(p => p.BillID)
(and use first) or you do something like
purchaseBills.ToArray().Last()
if this is not to expensive.
Last
is not supported by the back-end DB. You should try other techniques:
Run your query using
OrderByDescending
so your requested item comes first.Code your LINQ query as usual, but enforce Linq2Sql to render it to a CLR collection and then you'll have free access to everything locally, including
Last
. Example:var bills = purchaseBills.ToList(); var last = bills.Last();
The problem is that there's no easy translation into SQL for Last
or Reverse
, so either convert it to something in memory (ToList
, ToArray
) if there aren't going to be too many records, or you could run the query a 2nd time, with OrderByDescending
instead of OrderBy
and use First
.
- Instead of putting it into an own list by calling
ToList()
orToArray()
i would prefer to useAsEnumerable()
. - Additionally like the others you should try
OrderByDescending()
- Instead of
Count()
i would useAny()
.