Как реализовать новый метод, используя внедрение зависимостей и шаблон репозитория - PullRequest
0 голосов
/ 17 июня 2019

Я пытаюсь реализовать метод, в котором я выбираю все записи, которые относятся к правильному StateId (NJ, DE, PA);Я использую внедрение зависимостей и шаблон проектирования репозитория, для которого я новичок.

Вот что у меня в контроллере:

private IWorkOrderRepository _workOrderRepository;

public DependencyInjectionController(IWorkOrderRepository workOrderRepository)
{
    _workOrderRepository = workOrderRepository;
}

public IActionResult WorkOrders()
{
    var model = _workOrderRepository.GetWorkOrders();
    return View(model);
}

public IActionResult Nj(string LocationFilter)
{
    var locations = _workOrderRepository.GetWorkOrders().Select(x => x.StateId == LocationFilter).ToList();
    return View(locations);
}

Метод GetWorkOrders работает именно так, как и должно быть.Вот моя модель:

public class WorkOrderContext : DbContext
{
    public DbSet<WorkOrder> WorkOrder { get; set; }

    public WorkOrderContext(DbContextOptions<WorkOrderContext> options)
      : base(options)
    {

    }

}

public class WorkOrder
{

    [Key]
    public int UserId { get; set; }

    public string LocationId { get; set; }

    public string Reason { get; set; }

    public bool IsActive { get; set; } = true;

    public DateTime Date { get; set; } = DateTime.Now;

    public string StateId { get; set; } 

} 

Ошибка при получении маршрута:

"Элемент модели, переданный в ViewDataDictionary, имеет тип 'System.Collections..Generic.List 1[System.Boolean]', but this ViewDataDictionary instance requires a model item of type 'System.Collections.Generic.IEnumerable 1 [WorkOrderServices.Models.WorkOrder] '. "

1 Ответ

4 голосов
/ 17 июня 2019

Select - это , преобразующий список рабочих заданий в логические значения: true, где StateId соответствует фильтру местоположения, и false, где его нет.

Вместо преобразования списка вы хотите отфильтровать его с помощью Where: Where(x => x.StateId == LocationFilter).

...