var secondlast = _logService.GetLogEventsByItemID(137) .Reverse() .Skip(1) .Take(1) .FirstOrDefault();
Refresh
@Dherik makes a comment in his comment that .Reverse is not actually supported in LINQ to Entities and will cause the request to be evaluated at the reverse call point, not at the .FirstOrDefault call .FirstOrDefault . See here for all supported methods (not).
An alternative solution (LINQ to Entities friendly) requires that you have a suitable field for ordering (this should be anyway, otherwise the "second last" does not matter):
var secondlast = _logService.GetLogEventsByItemID(137) .OrderByDescending(e => e.EventDate ) .Skip(1) .Take(1) .FirstOrDefault();
source share