Accesso MVC6 DbContext dalle classi non correlate al controller

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

Domanda

Sto sviluppando un sito Web ASP.Net5 MVC6 che utilizza EF7.

Volevo accedere a DbContext da una delle mie classi che non viene chiamata da Controller.

È possibile accedere da lì? Se sì, per favore guidami un po 'in modo che io possa imparare come si fa.

Finora ha cercato molto da GitHub e StackOverflow. Pochissime informazioni su questo argomento.

Se devo iniettare nella mia classe, come dovrei farlo?

    public class CarAppContext : DbContext
{
    public DbSet<Car> Cars { get; set; }
    public DbSet<BodyType> BodyTypes { get; set; }
}

public Class NotificationManager
{
    CarAppContext ctx;
    public NotificationManager(CarAppContext AppCtx)
    {
        ctx = AppCtx;
    }
    public void SendNotification(Car HisCar, UserNotification HisNotification)
    {
        //need to check he has subscribed or not
        //ctx is null here
    }
}

Risposta popolare

Potresti chiamare il new CarAppContext() .

Ma se invece vuoi usare Dependency Injection, dovrai assicurartelo

  1. Hai registrato sia CarAppContext che NotificationManager con il contenitore di iniezione delle dipendenze (generalmente fatto in Startup.Configure)
  2. Istanziare NotificationManager dall'iniezione delle dipendenze

Non sorpreso che tu non abbia trovato documenti. Poiché ASP.NET 5 è ancora in versione beta, i nostri documenti non sono ancora stati scritti. Quando è pronto, ci saranno più postati qui: http://docs.asp.net/en/latest/fundamentals/dependency-injection.html



Related

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é