2010-02-22 70 views
1

我有一個名爲DeficiencyTag的SQL Server表,其PK是一個名爲DeficiencyTagID的整數。它將有幾百條記錄。還有另一個名爲Deficiency的表,其引用了特定的DeficiencyTagID。最終將會有數百萬個。使用LINQ-To-SQL計算在另一個表中記錄記錄的次數

我需要做的是根據從Deficiency表中引用每個DeficiencyTagID的次數列出前10個DeficiencyTag記錄。

我能想到的唯一方法是必須手動循環遍歷每個DeficiencyTag記錄並計算所有引用它的缺陷記錄。這聽起來很慢很麻煩。

有沒有更好的方法?我正在使用LINQ-To-SQL進行數據庫交互。

回答

2

在回答您的評論

var query = (from dt in dataContext.DeficiencyTags 
      let count = dt.Deficiencies.Count 
      orderby count descending 
      select new { DeficiencyTag = dt, Count = count}).Take(10); 
2

假設有在DeficiencyTag與不足之間的設計師的關係:

var query = dataContext.DeficiencyTags 
    .OrderByDescending(dt => dt.Deficiencies.Count()) 
    .Take(10); 
+0

看,我知道這很簡單。是的,有一種關係 – jamone 2010-02-22 21:25:36

+0

找到前10名中每一個被引用的次數是多少? – jamone 2010-02-22 21:30:46

相關問題