Это связано с одним из основных принципов OOP
, Inheritance
.Всякий раз, когда вы создаете экземпляр производного класса, вы увидите, что конструктор базового класса будет вызываться первым.
В этом случае, когда создается экземпляр BloggingContext
, конструктор класса DbContext
также вызывается первым, и это parameter-less
конструктор по умолчанию (если вы не используете :base(soemthing)
).Если вы увидите определение класса DbContext
, то увидите, что есть два конструктора, один из которых не содержит параметров, а другой принимает DbContextOptions options
в качестве параметра.
Поэтому, когда вы создаете экземпляр производногоclass, вы можете принять решение, какой соответствующий конструктор должен вызываться для базового класса, и в этом случае вы вызываете второй конструктор, передавая значение параметра конструктора следующим образом:
public BloggingContext(DbContextOptions<BloggingContext> options)
: base(options)
{ }
Вот и все!