我有一个基本控制器类,它具有以下DbContext。不用每个数据库工作都使用“使用”语句,我可以依靠这个。迄今为止,应用程序按预期运行我不确定是否真的需要Dispose部分。编号这是对EF CodeFirst使用DbContext的不好方法吗?
private static Context _database;
public static Context Db
{
get
{
if (_database == null)
{
_database = new Context();
}
return _database;
}
}
protected override void Dispose(bool disposing)
{
if (_database == null)
{
_database.Dispose();
}
base.Dispose(disposing);
}
你不应该为实体框架的'DbContext'使用'static'。在你的情况下,只要请求结束,控制器就会被释放,下一个请求将会失败。除非使用'static' /'const'值,否则不要在'Controller'中使用'static'。 –
您应该了解依赖注入,而不是在基本控制器中声明常用的东西。 – mason
为什么不在控制器/或Dbcontext中使用静态?静态使其更快AFAIK。我应该使用Dbcontext和使用说明吗?到目前为止,应用程序和所有CRUD都能正常工作。 –