Определение базовых параметров контекста Entity Framework - PullRequest
0 голосов
/ 20 февраля 2019

Я вижу базу (параметры) в примерах Entity Framework.Что означает база (опции), так как не может найти документацию Microsoft.

public class BloggingContext : DbContext
{
      public BloggingContext(DbContextOptions<BloggingContext> options)
          : base(options)
      { }


}

Пример здесь: Документация определяет DbContextOptions, но не базовые опции.https://docs.microsoft.com/en-us/ef/core/miscellaneous/configuring-dbcontext

1 Ответ

0 голосов
/ 20 февраля 2019

Это связано с одним из основных принципов OOP, Inheritance.Всякий раз, когда вы создаете экземпляр производного класса, вы увидите, что конструктор базового класса будет вызываться первым.

В этом случае, когда создается экземпляр BloggingContext, конструктор класса DbContextтакже вызывается первым, и это parameter-less конструктор по умолчанию (если вы не используете :base(soemthing)).Если вы увидите определение класса DbContext, то увидите, что есть два конструктора, один из которых не содержит параметров, а другой принимает DbContextOptions options в качестве параметра.

Поэтому, когда вы создаете экземпляр производногоclass, вы можете принять решение, какой соответствующий конструктор должен вызываться для базового класса, и в этом случае вы вызываете второй конструктор, передавая значение параметра конструктора следующим образом:

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

Вот и все!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...