2016-02-11 29 views
1

我有一段代碼,我想按兩個字段進行分組,並對它做兩個字段作爲元組鍵的ToDictionary。我不確定語法。以下是我所擁有的,但問題是它會創建一個帶有單個項目的元組。由兩列組成,並使用元組作爲關鍵C#做一個ToDictionary Linq

var count = this.Db.Query<EmployeeCount>(@"select 
      employername, ein, month, headcount 
      from employerInfo A inner join MonthlyInfo B on (A.Id = B.Id) 
      where A.ClientId = @Client", 
      new { run.Client }) 
      .GroupBy(r => new { r.EIN, r.EmployerName}) 
      .ToDictionary(pair => Tuple.Create<string>(pair.Key.ToString()), pair => pair.ToDictionary(r => (Months)r.month, r => r.headcount)); 

而且我EMPLOYEECOUNT類是

private class CountQuery 
    { 
     public string EmployerName; 
     public string EIN; 
     public int Month; 
     public int HeadCount; 
    } 

我嘗試做一個Tuple.Create,但我不知道如何來通知PARAMS是EIN和Employername的元組。

+0

僅供參考,你應該使用** POCO的公共**屬性**,即代替**領域與OrmLite。 – mythz

回答

3

我想通了自己如下

var count = this.Db.Query<EmployeeCount>(@"select 
     employername, ein, month, headcount 
     from employerInfo A inner join MonthlyInfo B on (A.Id = B.Id) 
     where A.ClientId = @Client", 
     new { run.Client }) 
     .GroupBy(r => new { r.EIN, r.EmployerName}).ToDictionary(pair => Tuple.Create<string,string>(pair.Key.EIN.ToString(),pair.Key.EmployerName), pair => pair.ToDictionary(r => (Months)r.ReportingMonth, r => r.FTECount)) 
相關問題