Как перейти на Dependency Injection, используя шаблон репозитория с использованием минимального Entity Framework - PullRequest
0 голосов
/ 16 июня 2019

Я пытаюсь перейти на внедрение зависимостей, используя шаблон репозитория.Я пытаюсь настроить шаблон репозитория, введя DbCcontext и реализуя метод в моем интерфейсе.Моя цель - получить все рабочие заказы.У меня есть модель под названием WorkOrder в моем DbContext.

Может кто-нибудь сказать мне, как мне реализовать метод из моего интерфейса с кодом, чтобы получить все рабочие задания?

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

public class WorkOrder
{
    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; } 
}

WorkOrderRepository

public class WorkOrderRepository : IWorkOrderRepository
{
    //Bringing in Db Context that will be used in Repos; 
    private WorkOrderContext _workOrderContext; 

    //Constructor that will inject the Context;
    public WorkOrderRepository(WorkOrderContext workOrderContext)
    {
        _workOrderContext = workOrderContext; 
    }

    //Implementing method from Interface; 
    public List<WorkOrder> GetWorkOrders()
    {
        return _workOrderContext.WorkOrder;            
    }
}

Здесьмой интерфейс:

public interface IWorkOrderRepository
{
    List<WorkOrder> GetWorkOrders(); 
} 

Я получаю сообщение об ошибке прямо здесь на

return _workOrderContext.WorkOrder;

Там написано

Невозможно преобразовать Entity Framework типа вуниверсальный набор систем

1 Ответ

2 голосов
/ 16 июня 2019

Ваша проблемная линия

return _workOrderContext.WorkOrder;

пытается вернуть ваш репозиторий, а не набор результатов в этом репо.

Вместо этого верните репо, материализованное в виде списка:

return _workOrderContext.WorkOrder.ToList();
...