0
我有一個大型表(約300萬行),我只查詢使用不同的列(OperationTypeId)的幾條記錄。在SQL Management Studio中,我使用以下查詢,它在4秒內執行並返回7行。LINQ選擇不同的列超時錯誤
SELECT *
FROM (SELECT t.ReferenceNumber, t.OperationTypeId,
ROW_NUMBER() OVER (PARTITION BY OperationTypeId
ORDER BY OperationTypeId) AS RowNumber
FROM TP_Transaction t) AS a
WHERE a.RowNumber = 1
我想在使用LINQ to SQL的代碼中完成相同的結果,並且這是我的代碼。
var temp = dbConn.TP_Transactions
.GroupBy(x => x.OperationTypeId)
.Select(g => new {OperationTypeId = g.Key, ReferenceNumber = g.FirstOrDefault().ReferenceNumber})
.ToList();
但是,此代碼會導致一個例外:
超時過期。操作完成之前超時的時間或服務器沒有響應。
請告訴我可以做些什麼來完成此查詢。
你有'OperationTypeId'上的索引嗎?順便說一下,'FirstOrDefault'是不必要的,你可以放心地使用'First'。 –
不幸的是沒有:(。 – AngieM