Тип репозитория ядра .net Core - PullRequest
0 голосов
/ 02 декабря 2018

У меня есть следующий класс репозитория:

public class TestRepository
{
    private readonly MyDbContext db;

    public TestRepository(MyDbContext context)
    {
        db = context;
    }

    public Test GetTest(int Id)
    {
        return db.Test.Find(Id);
    }
}

Как создать экземпляр класса из моего контроллера?

Когда я пытаюсь:

TestRepository repo = new TestRepository(MyDbContext);

Я получаюошибка в том, что MyDbContext является типом, который недопустим в данном контексте.Поэтому мне интересно, какой параметр я должен передать.

1 Ответ

0 голосов
/ 02 декабря 2018

Вам нужно изменить это

new TestRepository(MyDbContext);

для этого

new TestRepository(db);

Лучший подход - использовать DI везде, где вы можете.

Вы можете зарегистрировать свой класс хранилища вваш DI-контейнер и вызовите ваш метод для данного экземпляра.

Добавьте это в ваш startup.cs

services.AddScoped<TestRepository>();

И используйте его в вашем контроллере

private readonly TestRepository _testRepository;

public IndexController(TestRepository testRepository)
{
    _testRepository = testRepository;
}

Внедрение зависимостей в ASP.NET Core
Срок службы

...