获取lambda表达式中的下一个项目

时间:2016-08-03 11:19:13

标签: entity-framework linq linq-to-sql lambda

我检查了已回答的问题,但没有一个问题解决了我的问题。

我只需要从表Cars(sql server database)获取 NEXT ITEM ,我对EF有以下查询,忽略 Skip :< / p>

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

始终返回初始值完全相同的元素。我想首先是失败的方法。

谢谢

1 个答案:

答案 0 :(得分:1)

正确的代码可能是

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);

(注意&gt;在哪里)

但是,您之前的代码确实返回了一个值(而不是null)这意味着您有多个具有相同CarID的记录。这似乎不对。

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