Inizializzazione di un DbContext in un BaseController per MVC6 ed EF7?

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

Domanda

Seguendo il documento 5 di Getting Started di ASP.Net, vedo che a causa dependency injection di dependency injection nella parte superiore di qualsiasi controller che accederà al database, devo inserire qualcosa come

private DbContext _Context;

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

iniettare DbContext nel controller per l'uso. Nella mia app Web ASP.Net 5 MVC 6 ogni singola pagina interagirà con il database, quindi ho pensato di creare un BaseController che BaseController il reset dei miei controller e inserisca il codice di iniezione. Ho fatto questo ma ogni controller che eredita dal BaseController mi dà l'errore

Non c'è argomento dato che corrisponda al parametro formale richiesto 'Contesto' di 'BaseController.BaseController (DbContext)

Sono nuovo di DI e non sono sicuro se sto facendo le cose nel modo giusto o anche se può essere fatto nel modo che voglio. È possibile farlo in questo modo o devo inserire quel codice su ogni controller che BaseController , e se devo farlo, come posso scrivere un'azione nel BaseController che interagisce con il DB?

Risposta accettata

Se il tuo controller di base ha un costruttore che prende DbContext, allora qualsiasi controller che lo erediti deve anche usare lo stesso costruttore come questo in modo che possa passare la dipendenza alla classe base:

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

}


Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché