MVC6 Access DbContext à partir de classes non liées au contrôleur

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

Question

Je développe un site Web ASP.Net5 MVC6 en utilisant EF7.

Je voulais accéder à DbContext à partir d'une de mes classes qui n'est pas appelée à partir de Controller.

Est-il possible d'accéder à partir de là? Si oui, alors guide-moi un peu pour que je puisse apprendre à le faire.

Jusqu'à présent, beaucoup de recherches de GitHub et stackoverflow. Très peu d'informations sur ce sujet.

Si j'ai besoin d'injecter dans ma classe, comment dois-je le faire?

    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
    }
}

Réponse populaire

Vous pouvez appeler new CarAppContext() .

Mais si vous souhaitez utiliser l’injection de dépendance, vous devez vous assurer que

  1. Vous avez enregistré CarAppContext et NotificationManager avec le conteneur d'injection de dépendance (généralement effectué dans Startup.Configure).
  2. Instanciez NotificationManager à partir d'une injection de dépendance

Pas surpris que vous n'ayez pas trouvé de documents. Comme ASP.NET 5 est toujours en version bêta, nos documents n’ont pas encore été écrits. Quand ce sera prêt, il y en aura plus postés ici: http://docs.asp.net/fr/latest/fundamentals/dependency-injection.html



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi