私たちの MVC4 アプリケーションでは、データベースに Orders テーブル、Products テーブル、Category テーブルがあります。すべての Order には外部キー関係に製品 (および数量) があり、製品は外部キーを持つカテゴリに属します。
したがって、Order には OrderId、ProductId (FK から Product)、データと数量があり、Product には ProductId、Name、および CategoryId (FK から Category) があり、Category には CategoryId と Name があります。
これで、その日に注文されたカテゴリを表示し、カテゴリ名の下に商品を表示する「買い物リスト」を作成しました。
この日付の製品のみを表示するために、以下の foreach ループを使用しています。
@model Tuple<List<myproject.Models.Order>, List<myproject.Models.Order>>
@foreach (var item1 in Model.Item1)
{
if (item1.Date.ToString("d").Equals(DateTime.UtcNow.Date.ToString("d")))
{
<tr>
<td>
<h3>@Html.DisplayFor(catName => item1.Product.Category.Name)</h3>
</td>
</tr>
}
foreach (var item2 in Model.Item2)
{
if (item2.Product.Category.Name.Equals(item1.Product.Category.Name) &&
item2.Date.ToString("d").Equals(DateTime.UtcNow.Date.ToString("d")))
{
<tr>
<td>
@Html.DisplayFor(productName => item2.Product.Name)
 (x @Html.DisplayFor(quantity => item2.Quantity))
</td>
</tr>
}
}
}
カテゴリとカテゴリ内の製品を表示するには、リスト内のカテゴリの最初の名前がありません。出力は次のとおりです。
Apple (x 1)
Banana (x 1)
Snacks
Fries (x 3)
Hamburger(x 1)
Veggies
Tomato (x 1)
それ以外の
Fruit
Apple (x 1)
Banana (x 1)
Snacks
Fries (x 3)
Hamburger(x 1)
Veggies
Tomato (x 1)
私は過去1時間、これについて頭を悩ませてきました。「果物」のエントリが表示されない理由を誰かが説明できますか?