如何将此子查询转换为Linq?

时间:2016-05-22 22:33:29

标签: linq

我有以下SQL查询并尝试转换为LINQ

SELECT * 
FROM 
    (SELECT 
         *, 
         ROW_NUMBER() OVER (PARTITION BY ScannedItemId 
                            ORDER BY ScannedDate DESC) AS rn 
     FROM ItemTracking) A  
WHERE 
    A.rn = 1
    AND ScannedLoc = 1
ORDER BY 
    ItemTrackingId DESC

这将返回当前位置(ScannedLoc)中的项目ID。

我是LINQ的新手,并且很难将其他示例放在一起,尤其是子查询和Row_Number函数。

有人可以指引我走正确的道路吗?

1 个答案:

答案 0 :(得分:0)

你可以这样做:

var output = (
    from i in ItemTracking
    group i by i.ScannedItemId into g
    select g.OrderByDescending(t => t.ScannedDate).First()
).OrderByDescending(t => t.ItemTrackingId);

但我不确定它会转换成什么SQL。