簡體   English   中英

如何使用Linq-To-Sql在同一查詢中進行TOP,ORDER BY和DISTINCT?

[英]How to TOP, ORDER BY and DISTINCT in the same query with Linq-To-Sql?

如何將以下查詢轉換為Linq?

  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 );

這將帶給您一組匿名類型的對象的集合,這些對象具有一個名為A的TableA對象和一個SumXY(可能是int)。 或者,您可以創建一個包含A的數據加上總和的真實類,然后選擇這種類型的對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM