我有一個基本控制器類,它具有以下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都能正常工作。 –