1

誰かが私が間違っていることを指摘できれば、とても感謝しています。私は MVC 4 を使用しています。最初に edmx ファイルを含むデータベース、親結果の下に一連の子結果をリストしようとする 2 つの単純なテーブルがあります。

単純化されたコントローラ コード:

 var query = db.Childtablemodel.Include(c => c.ParentTablemodel);
 return View(query.ToList());

IEunumerable であるビュー:

enter code here@{ 
foreach (var itm in Model)
{
 <div>

  @itm.ParentTable.DisplayName
  <ul>        
   <li>
    <span> @itm.City </span> <span> @itm.State</span>
   </li>

   </ul>

</div>
 }
}

結果は、各子の親名を繰り返します

会社1

テキサス州ヒューストン

会社1

テキサス州オースティン

欲しいものはどこに

会社1

テキサス州ヒューストン

テキサス州オースティン

私はContoso University のチュートリアルに従っているため、コントローラーの子モデルを選択しました (親モデル ベースのコントローラーでこれらのグループを作成しようとして落胆した後)。edmx モデルは適切なナビゲーション プロパティを表示し、生成されたクラス ファイルに存在します。しかし、クエリのトレースを見ると、結果を説明する内部結合が使用されていることがわかりますが、まったく困惑しています!

4

1 に答える 1

3

これを行うには、linq の groupby を使用する必要があります。

@{ 
 foreach (var parent in Model.GroupBy(m => m.ParentTable.DisplayName))
 {
  <div>
   @parent.Key
   @foreach( var itm in parent )
   {
    <ul>        
     <li>
      <span> @itm.City </span> <span> @itm.State</span>
     </li>
    </ul>
   }
  </div>
 }
}
于 2013-06-16T22:00:04.580 に答える