Как работать с данными, которые возвращаются методом IEnumerable - PullRequest
0 голосов
/ 20 ноября 2018

Я пытаюсь создать простое представление (разбиение по страницам, сортировка и фильтрация).У меня есть метод, который выглядит примерно так:

public IEnumerable<VehicleMakeEntity> GetMake(int index, int count, 
                                      Expression<Func<VehicleMakeEntity, int>> orderLambda)
{
    var data = _makeRepository.SelectListMake(index, count, orderLambda).AsQueryable();
    return data;
}

Вы видите, что он вызывает другой метод из репозитория, который выглядит так же

private readonly IQueryable<VehicleMakeEntity> _source;

public MakeRepository(ProjectDbContext context)
{
    this.context = context;
    _source = this.context.VehicleMake;
}

public IEnumerable<VehicleMakeEntity> SelectListMake(int index, int count, 
                                      Expression<Func<VehicleMakeEntity, int>> orderLambda)
{
    return _source.Skip(index * count).Take(count).OrderBy(orderLambda);
}

В моем контроллере я вызываюmethod

public IActionResult Make()
{
    var data = _vehicleService.GetMake(1, 10, (p => p.Id));

    return View(data);
}

И он возвращает некоторые данные, с которыми я не знаю, как работать, как показано здесь

image

I also generated a View based on that controller method, a basic List View which you can see here

@model IEnumerable
@using NonFactors.Mvc.Grid;
@{
ViewData["Title"] = "Make View";
}
Make View


 Создать новый    @ Html.DisplayNameFor (model => model.Id)  @ Html.DisplayNameFor (model => model.Name)  @ Html.DisplayNameFor (model => model.Abrv)     @foreach (элемент var в Model) { @ Html.DisplayFor (modelItem => item).Id)  @ Html.DisplayFor (modelItem => item.Name)  @ Html.DisplayFor (modelItem => item.Abrv)  @ Html.ActionLink ("Редактировать "," Редактировать ", новый {/ * id = item.PrimaryKey * /}) |@ Html.ActionLink ("Подробности", "Детали", новый {/ * id = item.PrimaryKey * /}) |@ Html.ActionLink («Удалить», «Удалить», новый {/ * id = item.PrimaryKey * /})  }  

Но на сайте ничего не отображается.Должен ли я что-то делать с возвращенными данными?Что я делаю неправильно?Я проверил, не получают ли сущности информацию из базы данных, это так.

1 Ответ

0 голосов
/ 20 ноября 2018

Можете проверить с помощью приведенного ниже кода.

public IActionResult Make()
    {
        var data = _vehicleService.GetMake(1, 10, (p => p.Id)).ToList();

        return View(data);
    }

Также попробуйте удалить AsQueryable ()

public IEnumerable<VehicleMakeEntity> GetMake(int index, int count, Expression<Func<VehicleMakeEntity, int>> orderLambda)
    {
        return _makeRepository.SelectListMake(index, count, orderLambda);
    }
...