MVC6 및 EF7에 대한 BaseController에서 DbContext를 Initislizing 하시겠습니까?

asp.net-core asp.net-core-mvc dependency-injection entity-framework-core

문제

ASP.Net 5 시작하기 문서 다음에 나는 데이터베이스에 액세스 할 컨트롤러의 상단에 dependency injection 이 있기 때문에 다음과 같은 것을 넣어야한다고 본다.

private DbContext _Context;

public HomeController(DbContext Context)
{
      _Context = Context;
}

DbContext를 컨트롤러에 삽입하여 사용합니다. 내 ASP.Net 5 MVC 6 웹 응용 프로그램에서 모든 단일 페이지가 데이터베이스와 상호 작용할 것이므로 내 컨트롤러 재설정이 상속 받고 거기에 주입 코드를 넣을 BaseController 를 만들 것이라고 생각했습니다. 이 일을했지만 BaseController 에서 상속 한 모든 컨트롤러에서 오류가 발생합니다.

'BaseController.BaseController (DbContext)'의 필수 형식 매개 변수 '컨텍스트'에 해당하는 인수가 없습니다.

나는 DI가 새로운데, 내가 일을 제대로하고 있는지 또는 내가 원하는대로 할 수 있다고하더라도 확신 할 수 없다. 이 방법으로 할 수 있습니까? 아니면 내가 만든 모든 컨트롤러에이 코드를 추가해야합니까? 그렇다면 DB와 상호 작용하는 BaseController 에 어떻게 액션을 작성할 수 있습니까?

수락 된 답변

기본 컨트롤러에 DbContext를 사용하는 생성자가 있으면이 컨트롤러를 상속하는 모든 컨트롤러에서도 이와 같은 생성자를 사용해야하므로 기본 클래스에 종속성을 전달할 수 있습니다.

public HomeController(DbContext Context):base(Context)
{

}



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.