После ASP.Net 5 Getting Started документа я вижу, что из-за dependency injection
в верхней части любого контроллера, который будет иметь доступ к базе данных мне нужно поставить что-то вродеИнициализация DbContext в BaseController для MVC6 и EF7?
private DbContext _Context;
public HomeController(DbContext Context)
{
_Context = Context;
}
впрыснуть DbContext в контроллер для использования. В моем веб-приложении ASP.Net 5 MVC 6 каждая отдельная страница будет взаимодействовать с базой данных, поэтому я решил создать BaseController
, что сброс моих контроллеров наследует и помещает там код для инъекций. Я сделал это, но каждый контроллер, который наследует от BaseController
дать мне ошибку
Там не аргумент, учитывая, что соответствует требуемому формальному параметру «Контекст» из «BaseController.BaseController (DbContext)
Я новичок в DI и не уверен, что я делаю все правильно или даже если это можно сделать так, как я хочу. Возможно ли это сделать так, или мне нужно поместить этот код на каждый контроллер, который я делаю, и если мне нужно это сделать, как я могу написать действие в BaseController
, которое взаимодействует с БД?
Я добавил свой код и ошибка исчезла, но я делаю '_DbContext' недоступен из' HomeController' – Matthew
, вам нужно объявить как защищенный в базовом контроллере, чтобы homecontroller разрешил его использовать. –
Это исправлено, спасибо! – Matthew