2
如何將以下查詢翻譯成Linq?如何在LINQ-To-Sql的相同查詢中使用TOP,ORDER BY和DISTINCT?
SELECT DISTINCT TOP 10 A.*,A.X+A.Y AS SUMXY
FROM TABLE_A AS A INNER JOIN TABLE_B AS B ON A.ID = B.AID
ORDER BY SUMXY
我不想拆分兩個查詢。
如何將以下查詢翻譯成Linq?如何在LINQ-To-Sql的相同查詢中使用TOP,ORDER BY和DISTINCT?
SELECT DISTINCT TOP 10 A.*,A.X+A.Y AS SUMXY
FROM TABLE_A AS A INNER JOIN TABLE_B AS B ON A.ID = B.AID
ORDER BY SUMXY
我不想拆分兩個查詢。
使用擴展方法並假設您在Table_A和Table_B之間具有外鍵關係,以便在TableAs表上有一個名爲TableBs的EntitySet(使用真實表名稱...會更容易)。
var query = db.TableAs.Where(a => a.TableBs.Count() > 0)
.Select(a => new { A = a, SumXY = a.X + a.Y })
.OrderBy(a => a.SumXY)
.Take(10);
這會給你回一個有一個名爲TableA的對象和SumXY(一個int,大概)匿名類型對象的集合。或者,您可以創建一個真實的類,其中包含A的數據以及此類型的總和和選擇對象。