EF 代码优先方法中 DbContext 类的空构造函数的目的是什么?



我有一个简单的上下文类定义:

namespace PowerSupply.Persistance.Facade
{
class PowerSupplyDBContext : DbContext
{
public PowerSupplyDBContext() : base("PowerSupplyDatabase")
{
}
}
} 

身体内部什么都没有

public PowerSupplyDBContext() : base("PowerSupplyDatabase")
{

这个空构造函数的目的是什么。这个空构造函数如何工作?

它调用基类的构造函数。所以它不是空的。它只是没有添加新的东西。

使用"空"构造函数的原因有很多。

您可能没有任何新属性,或者您在其他地方实例化这些属性(我不建议(

您可能只想添加功能(新方法(,以便扩展类,并使用基类的属性和方法实现新方法。因此,您不需要构造函数来执行与基类相反的新操作。

或者它有许多构造函数,并且在需要使用类的有限功能或默认值的情况下使用空构造函数。

最佳做法是在第三方/其他项目/编译器无法捕获类更改的任何位置可能使用的任何类中包含空构造函数。

如果省略了空构造函数,并且该类由第三方或另一个项目/应用程序中使用,则以后无法更改该类以包含带参数的构造函数。否则,以前不依赖于传递构造函数参数的此类的所有用法都将中断,因为它们将没有要引用的空构造函数。

最新更新