使用 LINQ select .NET Framework 中的最后一条记录

Using LINQ to select the last record in .NET Framework

我需要使用 LINQ 查询 SQL 数据库中的最后一条记录。 我现在这样做的方式需要两个步骤。首先,我使用 OrderByDescending 获取 ID 值。然后,我在另一个查询中使用该 ID 来获取完整的记录集。

var model = _context.SystemViewModel.OrderByDescending(u => u.ID).Select(x => x.ID).FirstOrDefault();

if (ID > 0)
{
    ViewBag.user = from x in _context.SystemViewModel where x.ID == ID select x;
}
else
{
    ViewBag.user = from x in _context.SystemViewModel where x.ID == model select x;
}

LINQ 中是否有一种方法可以一步完成此操作?

ViewBag.user = from x in _context.SystemViewModel where x.ID == (ID > 0 ? ID : model) select x;

您可以使用 ?:operator https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/conditional-operator