в моем проекте у меня есть две таблицы: Restaurant (RestaurantId, Name, ...., Adress) и RestaurantReviews (ReviewsId, Mark, ...., RestaurantId). В моем PartialView я пытаюсь показать информацию о ресторане и вычислить среднюю оценку, но если я попытаюсь рассчитать среднюю оценку, я получаю ошибку:
ArgumentNullException: Value cannot be null. (Parameter 'source')
RestaurantModel
public class Restaurant
{
[Key]
public int RestaurantId{ get; set; }
....
[Required(ErrorMessage = "Restaurant name is empty")]
public string Name{ get; set; }
....
public virtual ICollection<RestaurantReviews> RestaurantReviews{ get; set; }
RestaurantReviewsModel
public class RestaurantReviews
{
[Key]
public int RestaurantReviewsId { get; set; }
....
[Required(ErrorMessage = "Restaurant mark is empty")]
public int Mark{ get; set; }
[ForeignKey("Restaurant")]
public int RestaurantId { get; set; }
public virtual Restaurant Restaurant {get; set; }
DbContext
public DbSet<Restaurant> Restaurant { get; set; }
public DbSet<RestaurantReviews> RestaurantReviews{ get; set; }
Вызываемые PartialViews
@await Html.PartialAsync("~/Views/Restaurant/RestaurantWidget.cshtml", (IEnumerable<Firma.Data.Data.CMS.Restaurant>)ViewBag.RestaurantWidget)
RestaurantWidget.cs html
@model IEnumerable<Firma.Data.Data.CMS.Restaurant>
@foreach (var item in Model)
{
...
@item.Name
...
//Without this line everything is ok
@item.RestaurantReviews.Average(x=>x.Mark)
//Without this line everything is ok
...
}
Контроллер
public IActionResult Index()
{
ViewBag.RestaurantWidget=
(
from restaurant in _context.Restaurant
select restaurant
).Take(5).ToList();
return View();
}
Дополнительная информация: Каждый ресторан имеет хотя бы одну оценку . Нет ресторана, который не имел бы рейтинга