Dish
すべてのオブジェクトをロードしようとしています。Dish
とDishImage
には 1 対多の関係があります。つまり、Dish
に多数DishImage
の を関連付けることができます。
両方のクラスのコードを次に示します。
これは、アクションメソッドで取得しようとしている方法です:
[ChildActionOnly]
public PartialViewResult TopDishes()
{
IEnumerable<Dish> topDishes = dishRepository.Dishes.Include( d => d.DishImages );
return PartialView(topDishes);
}
ビューのコードは次のとおりです。
@model IEnumerable<RestaurantHub.Domain.Entities.Dish>
@foreach (var dish in Model)
{
<div class="top-ten-offers-list">
<div class="top-ten-offer">
<p class="top-ten-deal-description">
@dish.Description
</p>
<img src="@dish.DishImages.First().ImagePath" />
<p class="top-ten-deal-title">@dish.Name</p>
</div>
</div>
}
私はいくつかの SO の質問を読みましたが、そのほとんどがInclude()
(私が行っている) 使用を提案しており、他の人は MARS を true に設定することを提案しています。ここで微妙な点が欠けていると思います。どんな助けでも大歓迎です。
デバッグ情報:
コードをアクション メソッドまでデバッグすると、(結果を列挙することによって) 正しいデータが読み込まれていることを確認できます。しかし、コントロールがforeach
ビューでループに達すると、前述のエラーがスローされます。
ビューから行を削除すると、@dish.DishImages.First().ImagePath
画像は表示されませんが、正常に機能します。