如何检查linq 2 sql查询中的下一项

时间:2011-07-09 06:41:09

标签: c# linq linq-to-sql c#-4.0

我有这样的表:

position             title
---------------------------
1                     "t1"
2                     "t1"
3                     "t2"
4                     "t1"
5                     "t2"

我想过滤“t1”标题但是对于当前位置和下一个位置有1个差异的位置。根据这个,如果我首先要“t1”,结果应为[1,2]。

如何使用linq 2 sql编写此查询?

1 个答案:

答案 0 :(得分:2)

听起来你想要一个自我加入:

var query = from item1 in db.Items.Where(x => x.title == "t1")
            from item2 in db.Items.Where(x => x.title == "t1")
            where item1.position + 1 == item2.position
            select item1; // Adjust however you want, e.g. new { item1, item2 }

现在我不知道这是否真的可以在SQL中运行......但从逻辑上讲,这就是你想要的。