是base.OnModelCreating(modelBuilder)必备吗?

Gar*_*ghi 11 entity-framework entity-framework-6

我压倒一切OnModelCreating,在方法中就是这条线base.OnModelCreating(modelBuilder);

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    base.OnModelCreating(modelBuilder);
}
Run Code Online (Sandbox Code Playgroud)

看一下如何实现这个的代码示例和手册,我感到困惑的是我是否需要它.有时它在那里,有时不在.有时在方法开始时,有时在结束时.

我该怎么办?

Iva*_*oev 8

根据文档,如果您直接从DbContext类继承,则无关紧要:

在初始化派生上下文的模型时,但在模型被锁定并用于初始化上下文之前,将调用此方法.此方法的默认实现不执行任何操作,但可以在派生类中重写它,以便在锁定模型之前可以进一步配置模型.

换句话说,由于定义没有任何作用,因此调用base.OnModelCreating不是必要的,但同时也不会因为被调用而受到伤害 - 这就是为什么有时它会在那里,有时不会.有时在方法开始时,有时在结束时.

  • 在面向对象中,您调用基类来确保满足其声明的行为。无论这种行为是什么。你没有详细看base是做什么的。也许有一天,它决定做一些事情,然后什么也不做,或者以不同的方式什么都不做。因此我会这样称呼它。不过,将其放在第一位还是最后的问题仍然存在。 (2认同)