实体框架上下文基本选项的定义

时间:2019-02-20 05:38:46

标签: c# entity-framework asp.net-core asp.net-core-mvc

我在Entity Framework示例中看到了base(选项)。 base(options)是什么意思,因为找不到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 :(得分:2)

这与OOPInheritance的基本原理之一有关。每当您创建派生类的实例时,您都会看到将首先调用基类构造函数。

在这种情况下,无论何时创建BloggingContext的实例,都会首先调用DbContext类构造函数,它是parameter-less的默认构造函数(如果您不使用{ {1}})。如果您看到:base(soemthing)类的定义,那么您将看到有两个构造函数,一个是无参数构造函数,另一个是将DbContext作为参数。

因此,当您创建派生类的实例时,可以决定应为基类调用哪个适当的构造函数,在这种情况下,您可以通过传递构造函数参数值来调用第二个构造函数,如下所示:

DbContextOptions options

就是这样!