2016-09-22 108 views
0

我有一個查詢,以矩陣格式按扇區返回每個國家和地區的國家和部門以及百分比。我似乎無法找到一個linq查詢,將返回數據以這種格式顯示。從數據庫中我的數據是這樣的:如何在矩陣中顯示數據

Canada | Education | 20 
Canada | Medical | 80 
Mexico | Education | 40 
Mexico | Medical | 60 

,我需要這樣的顯示出來:

    Education | Medical 
Canada     20 | 80 
Mexico     40 | 60 

我需要組上的國家,但顯示爲部門列。這是我的查詢:

var query = from p in ctx.Programs 
         group p by p.Country.Name into g 
         select new 
         { 
          rowKey = g.Key, 
          rowData = g.Select(s => new { Sector = s.Sector.NameEng, Percentage = s.BUDGET_PCT }) 
         }; 
      return query; 

但這不起作用。

+0

你如何檢查它是教育還是醫療? –

+1

你的意思是什麼「不起作用」?有沒有錯誤,或者你只是得到空白值? –

+0

假設它可以通過'p.Country.Name'這一行,搶先建議嘗試'ctx.Programs.Include(「Sector」)' –

回答

0

我得到了一個解決方案。我創建了一個有兩個屬性的類,一個保存rowKey,一個保存rowData的List,然後爲rowData創建一個類。我回來了,然後將其添加到Html,它正確顯示矩陣:

<table id="tblMatrix"> 
         <tr> 
          <th></th> 
          @foreach (var cs in Model.CountrySectors.FirstOrDefault().SectorList) 
          { 
           <th>@cs.Sector</th> 
          } 
         </tr> 
         @foreach (var cs in Model.CountrySectors) 
         { 
          <tr> 
           <td>@cs.Country</td> 
           @foreach (var s in cs.SectorList) 
           { 
            <td>@s.Percentage</td> 
           } 
          </tr> 
         } 
        </table> 

和這個工程。希望它能幫助那裏的人。