2016-09-22 7 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

私は解決策を得ました。 2つのプロパティを持つクラスを作成しました.1つはrowKeyを保持し、もう1つは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> 

これが機能します。誰かを助けてくれることを願っています。

関連する問題