MVC6とEF7のBaseControllerでDbContextを初期化しますか?

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 Web Appでは、すべての単一ページがデータベースとやりとりするので、コントローラのリセットが継承してそこに注入コードを置くBaseControllerを作成すると思った。私はこれを行っているが、 BaseControllerから継承するすべてのコントローラが私にエラーをBaseController

BaseController.BaseController(DbContext)の必要な仮パラメータ 'Context'に対応する引数はありません。

私はDIに新しく、正しいことをやっているのか、それとも自分のやりたいことができるのか分からない。このようにすることは可能ですか、私が作成したすべてのコントローラにそのコードを記述する必要がありますか?それを行う必要がある場合、DBとやりとりするBaseControllerどのようにアクションを書き込むことができますか?

受け入れられた回答

ベースコントローラーにDbContextを受け取るコンストラクターがある場合、それを継承するすべてのコントローラーも同じようなコンストラクターを使用して、基本クラスに依存関係を渡す必要があります。

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

}


Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ