获取 lambda 表达式中的下一项

Get the next item in lambda expression

我检查了已回答的问题,但其中 none 解决了我遇到的问题。

我只需要从 table 汽车(sql 服务器数据库)获取 NEXT ITEM 并且我对 EF 有以下查询有点忽略 Skip:

var carid = value;
var car = db.Cars.Where(c => c.CarID == carid).OrderBy(c => c.CarID).Skip(1).FirstOrDefault();
Response.Write(car.CarID);

总是returns初始值完全相同的元素。我猜 firstordefault 不是正确的选择。

谢谢

正确的代码可能是

var carid = value;
var car = db.Cars.Where(c => c.CarID > carid).OrderBy(c=> c.CarID).FirstOrDefault();
//needs a null check before using car
Response.Write(car.CarID);

(注意哪里的>)

然而,您之前的代码确实 return 一个值(而不是空值)这一事实意味着您有多个记录具有相同的 CarID。这似乎是错误的。

另请注意,正确的代码需要数据库中的自动递增 ID。