Я думаю, с точки зрения простоты, это должен быть тот же результат, но быстрее, так как не требуется двухкратных поездок через EF на сервер sql, вы всегда хотите выполнить запрос как можно меньше раз для задержки, как поле Id является первичным ключом и проиндексирован, должен быть исполнителем
using(var db = new DataContext())
{
var maxEntity = db.Entities.OrderByDecending(x=>x.Id).FirstOrDefault()
}
Должен быть эквивалентным SQL-запросу
SELECT TOP 1 * FROM Entities Order By id desc
так включить поисковый запрос
string predicate = "name";
using(var db = new DataContext())
{
var maxEntity = db.Entities
.Where(x=>x.Name == predicate)
.OrderByDecending(x=>x.Id)
.FirstOrDefault()
}