У меня есть свой собственный контроллер, где я делаю частный экземпляр ApplicationDbContext. Вопрос в том, нужно ли мне писать метод Dispose в каждом настраиваемом контроллере, как для обычного DbContext, или у ApplicationDbContext есть некоторый базовый класс для наследования метода Dispose?
public class DashboardController : Controller
{
private ApplicationDbContext db = new ApplicationDbContext();
public ActionResult Home()
{
return View();
}
public ActionResult Carousels()
{
IList<Carousel> list = db.Carousels.ToList();
if (list.Count() == 0)
{
ViewBag.Carousels = "0";
return View();
}
ViewBag.Carousels = "1";
return View(list);
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
db.Dispose();
}
base.Dispose(disposing);
}
}
Я использую ApplicationDbContext, сгенерированный из удостоверения asp.net, где я добавил пользовательские классы, поэтому мне нужен экземпляр ApplicationDbContext для вызова списков моих объектов. В случае, когда у меня есть свой собственный DbContext, кроме ApplicationDbContext, я обычно делаю класс BaseController, где переопределяю метод Dispose, поэтому мне не нужно писать это в каждом контроллере.
Проблема в том, что я не знаю, как личность полностью скрывается за сценой. Есть ли где-нибудь еще переопределение метода Dispose внутри Identity, или я могу использовать базовый контроллер, который будет содержать метод переопределения Dispose так же, как когда я использую любой другой DbContext внутри контроллера?
Базовый вопрос, я думаю, будет ... Имеет ли ApplicationDbContext из Identity какие-либо отличия от любого DbContext, потому что наследуется от IdentityDbContext, а не DbContext