Одно из значений возвращает null в модели, которая назначается в классе сущности как объект - PullRequest
0 голосов
/ 04 августа 2020

Я пытаюсь вернуть значения в свое представление из модели представления, которая имеет объекты класса сущности. В классе категории есть список продуктов, но когда я показываю значения в представлении из модели, он возвращает нулевое значение в категории .model.count enter image description here View Code:

`@model ClothBazar.Web.ViewModels.CategorySearchViewModel

      Имя категории  Количество продуктов  Действия    @if (Model.Categories! = Null && Model.Categories.Count> 0) {foreach (var category in Модель.Категории) { @category.Name @ category.Products.Count  Редактировать  Удалить   }}    `

Код модели просмотра категорий

public class CategorySearchViewModel
    {
        public string SearchTerm { get; set; }
        public List<Category> Categories { get; set; }
    }

Класс категории:

public class Category : BaseEntities
{
    public string ImageURL { get; set; }
    public List<Product> Products { get; set; }
    public bool IsFeatured { get; set; }
}

Код действия контроллера:

 public ActionResult CategoryTable(string Search)
    {
        CategorySearchViewModel model = new CategorySearchViewModel();
        model.Categories = categoryService.GetCategories();
        if (string.IsNullOrEmpty(Search) == false)
        {
            model.SearchTerm = Search;
            model.Categories = model.Categories.Where(x=> x.Name != null && x.Name.ToLower().Contains(Search.ToLower())).ToList();
        }
        return PartialView("CategoryTable", model);
    }

Метод GetCategories:

 public List<Category> GetCategories()
    {
        using(var context = new CBContext())
        {
           return context.Categories.ToList();
        }
    }

1 Ответ

1 голос
/ 04 августа 2020

Проблема заключалась в типе загрузки до того, как я использовал ленивую загрузку. После использования активной загрузки работает нормально

public List<Category> GetCategories()
    {
        using(var context = new CBContext())
        {
            return context.Categories.Include(x => x.Products).ToList();
        }
    }
...