【发布时间】:2016-08-11 18:26:40
【问题描述】:
我目前正在开发一个 ASP.NET Core MVC 应用程序(我正在将一个项目从 .NET 迁移到 .NET Core)并且我想知道基本构造函数。
具体来说,代码如下:
public partial class CompanyFormsContext : DbContext
{
public CompanyFormsContext()
: base("name=CompanyFormsContext")
{
}
public CompanyFormsContext(string connName)
: base("name=" + connName)
{
}
...
}
这是一种 ASP.NET 语法,现在 DbContext 不接受字符串作为参数,而是接受 DbContextOptionsBuilder。
我的问题是:基类构造函数如何以及何时有用?在这里我可以为 CompanyFormsContext 设置一个空的构造函数,但我仍然可以为基类构造函数传递一个参数?
我猜测基本构造函数与 DbContext 相关,因为 CompanyFormsContext 是一个子类。但是,我对为什么要在这里使用基类感到困惑。
以下是我们在项目中调用这些方法的两种方式:
//First
var db = new CompanyFormsContext(siteUrl.StartsWith("http://www.") ? "CompanyFormsContext" : "CompanyFormsContextQA");
//Second
var env = Request.Headers["environment"].First();
var db = new CompanyFormsContext(env);
我可能不得不修改它们以使其能够与新的 .NET Core 语法一起使用。每个实例会调用哪个构造函数?
简而言之,我想了解在这种情况下如何使用基类以及它们的一般用途是什么。谢谢
【问题讨论】:
标签: c# asp.net .net asp.net-mvc entity-framework