我有以下SQL查询需要转换为使用VB.NET的LINQ
SELECT *
FROM (SELECT Id
,LocationCode
,LocationName
,ContactName
,ContactEmail
,Comments
,SBUName
,CreatedBy
,CreatedDtm
,ModifiedBy
,ModifiedDtm
,ROW_NUMBER() OVER (PARTITION BY LocationCode ORDER BY ID) AS RowNumber
FROM testDB ) as rows
WHERE ROWNUMBER = 1
有很多重复的位置代码,所以我只想显示每个位置代码的一条记录,用户就可以编辑这些信息。一旦他们编辑,我将保存所有特定位置代码记录的信息。
我在这里无法使用DISTINCT
,因为CreatedBy
/ ModifiedBy
不同,它仍会带回所有数据。
通过使用以下LINQ查询来选择所有数据,有没有办法可以从中获取LocationCode
的DISTINCT记录?
queryLocMaint = From MR In objcontextGSC.TestDB
Select MR.Id,
MR.LocationCode,
MR.LocationName,
MR.SBUName,
MR.ContactName,
MR.ContactEmail,
MR.Comments,
MR.CreatedBy,
MR.CreatedDtm,
MR.ModifiedBy,
MR.ModifiedDtm()
答案 0 :(得分:1)
ROW_NUMBER
,也许您可以使用此GROUP BY
方法:
Dim q = From mr In objcontextGSC.TestDB
Group mr By mr.LocationCode Into LocationCodeGroup = Group
Select LocationCodeGroup.OrderBy(Function(mr) mr.Id).First()
这将按ID排序每个LocationCode组的第一行。