我正在尝试加载所有Dish
对象。Dish
和DishImage
s 具有一对多的关系,即 aDish
可以有许多DishImage
s 与之关联。
这是这两个类的代码。
这就是我试图在操作方法中检索它的方式:
[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
从视图中删除该行,它可以正常工作,尽管我没有得到任何图像。