我在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
答案 0 :(得分:2)
这与OOP
,Inheritance
的基本原理之一有关。每当您创建派生类的实例时,您都会看到将首先调用基类构造函数。
在这种情况下,无论何时创建BloggingContext
的实例,都会首先调用DbContext
类构造函数,它是parameter-less
的默认构造函数(如果您不使用{ {1}})。如果您看到:base(soemthing)
类的定义,那么您将看到有两个构造函数,一个是无参数构造函数,另一个是将DbContext
作为参数。
因此,当您创建派生类的实例时,可以决定应为基类调用哪个适当的构造函数,在这种情况下,您可以通过传递构造函数参数值来调用第二个构造函数,如下所示:
DbContextOptions options
就是这样!