在Linq中实现相当于T-SQL ROW_NUMBER + OVER

时间:2009-10-01 19:50:32

标签: tsql gridview subsonic3

是否可以在Linq中实现以下目标?

我想要得到的是一个记录列表,其列显示以1开头的行号。我需要在gridview控件中显示行号,以便在视觉上向用户表示已填充的行数。你为什么问?用户需要在此网格中输入确切数量的数据点以匹配“样本大小”。这是一个用于记录质量数据的应用程序......

也许这可以通过使用RowDataBound事件并在运行中构建它来实现吗?

以下是查询:

SELECT ROW_NUMBER() OVER (ORDER BY [InspDataID]) AS 'RowNumber'
,[InspDataID]
      ,[KeyCharID]
      ,[InspValue]
  FROM [IncomingInsp].[dbo].[InspData]
where [KeyCharID] = 41

我在项目中使用SubSonic3和Linq语法。我一直在学习更多Linq。

我尝试根据上面的查询创建一个视图(减去条件)但是在选择了所有行并且我的rownumber列结束不正确之后应用了条件。

现在我创建了一个以KeyCharID作为条件的存储过程。这有效。但我希望能够在Linq实现这一目标。我已经看过在EF中使用这个ROW_NUMBER函数进行分页的帖子,但还没有想到它...

感谢您的帮助,

Josh Blair

1 个答案:

答案 0 :(得分:2)

LINQ的Select()方法有一个重载,它给你一个行号。查看 How do I add ROW_NUMBER to a LINQ query or Entity?

相关问题