Базовые параметры экземпляра базового контекста Entity Framework - PullRequest
0 голосов
/ 20 мая 2018

Я новичок в EF Core.

Я создал свой контекст, который ссылается на appsettings.json

public APITestDBContext(DbContextOptions<APITestDBContext> options):base(options)
{
}

Работает хорошо.Я могу обновить БД в подходе Code First.Но когда я попытался создать экземпляр из dbcontext, это ожидаемый вариант.Я не знаю, какие варианты ожидают.

private APITestDBContext db = new APITestDBContext();

Не указан аргумент, соответствующий необходимому формальному параметру 'options' для 'APITestDBContext.APITestDBContext (DbContextOptions)'

Что мне нужно там написать?

1 Ответ

0 голосов
/ 20 мая 2018

Хорошо, что вы поддержали внедрение зависимостей для своего класса, и в методе ConfigureService в Startup.cs вы упомянули, как внедрение должно быть разрешено.Так что теперь, когда вам нужно создать новое, как это.Вашему классу требуется параметр конструктора, который вы должны предоставить, который будет иметь то же значение параметра в вашем классе запуска.

или создать другую перегрузку для конструктора, как показано ниже, которая не принимает никаких параметров:

public APITestDBContext():base()
{
}

Но для этого он вызовет метод DBContext.OnConfiguring () для настройки вашей базы данных, которую вам нужно реализовать.

 protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlServer("Your Connection String");
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...