EF Code First 方法中 DbContext Class 的空构造函数的目的是什么?
What is the purpose of empty constructor of DbContext Class in EF Code First Approach?
我有简单的上下文 class 定义:
namespace PowerSupply.Persistance.Facade
{
class PowerSupplyDBContext : DbContext
{
public PowerSupplyDBContext() : base("PowerSupplyDatabase")
{
}
}
}
体内什么都没有
public PowerSupplyDBContext() : base("PowerSupplyDatabase")
{
这个空构造函数的目的是什么。这个空的构造函数是如何工作的?
它调用基class的构造函数。所以它不是空的。它只是没有添加新内容。
您可以使用 "empty" 构造函数的原因有很多。
您可能没有任何新属性,或者您在其他地方实例化了这些属性(我不推荐)
您可能只想添加功能(新方法),因此您扩展 class,并使用基础 class 的属性和方法实现新方法。所以你不需要构造函数来做一些新的事情,而不是基础 class.
或者它有很多构造函数,在需要使用 class 的有限功能或默认值的情况下使用空构造函数。
最好在任何 class 可能被第三方/其他项目/编译器无法捕获 class 中的更改的任何地方使用空构造函数。
如果您省略空构造函数,并且 class 被第三方使用或在您的另一个 projects/applications 中使用,那么您以后无法更改 class包含带参数的构造函数。否则,以前不依赖传递构造函数参数的 this class 的所有使用都将中断,因为它们将没有空构造函数可供引用。
我有简单的上下文 class 定义:
namespace PowerSupply.Persistance.Facade
{
class PowerSupplyDBContext : DbContext
{
public PowerSupplyDBContext() : base("PowerSupplyDatabase")
{
}
}
}
体内什么都没有
public PowerSupplyDBContext() : base("PowerSupplyDatabase")
{
这个空构造函数的目的是什么。这个空的构造函数是如何工作的?
它调用基class的构造函数。所以它不是空的。它只是没有添加新内容。
您可以使用 "empty" 构造函数的原因有很多。
您可能没有任何新属性,或者您在其他地方实例化了这些属性(我不推荐)
您可能只想添加功能(新方法),因此您扩展 class,并使用基础 class 的属性和方法实现新方法。所以你不需要构造函数来做一些新的事情,而不是基础 class.
或者它有很多构造函数,在需要使用 class 的有限功能或默认值的情况下使用空构造函数。
最好在任何 class 可能被第三方/其他项目/编译器无法捕获 class 中的更改的任何地方使用空构造函数。
如果您省略空构造函数,并且 class 被第三方使用或在您的另一个 projects/applications 中使用,那么您以后无法更改 class包含带参数的构造函数。否则,以前不依赖传递构造函数参数的 this class 的所有使用都将中断,因为它们将没有空构造函数可供引用。