2014-07-12 51 views
-1

這裏查詢檢索我的基地中的所有複合C#LINQ:獲得每行的數量

我想爲了對象GridCompte內添加一個數字來算表內的元素(1,2,3 ...):

var comptes = (from c in Comptes       
       join s in Societies on c.IdSoc equals s.IdSoc  
       select new GridCompte 
       { 
        SocCompteId = c.IdCompte,        
        Name = c.Name, 
        Nb = ??? COUNT ???, 
        ..... 
        SocName = s.Name 
       }).ToList(); 

我嘗試使用聲明,但我沒有設法實現我的目標。

有什麼建議嗎?

+2

你能否解釋的領域?你想要計算的清單是什麼?它來自Societies或Comptes表格在哪裏? –

+0

我已經嘗試過使用第二個查詢,但問題是我有10k的數據,如果我進行第二個查詢,性能未優化。 – Gary89

回答

0

首先準備LINQ只爲你想獲得

var comptes = from c in Comptes       
        join s in Societies on c.IdSoc equals s.IdSoc  
        select new 
        { 
         SocCompteId = c.IdCompte,        
         Name = c.Name,       

         ..... 
         SocName = s.Name 
        }; 

現在使用索引選項可用在選擇

var finalComptes = (comptes.AsEnumerable() 
       .Select((comptes, index) => new GridCompte() 
         { 
          SocCompteId = c.IdCompte,        
          Name = c.Name, 
          Nb = index + 1, 

          ..... 
          SocName = s.Name        
         }).ToList(); 
+0

我已經使用過這個解決方案(多查詢),問題是我有10k的數據,如果我做第二個查詢,性能沒有優化。 – Gary89