我目前正在研究一個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核心語法工作來修改這些。每個這些實例將調用哪個構造函數?
不久,我想了解在這種情況下如何使用基類,以及它們的一般用途是什麼。謝謝
一個很好的例子 –