MVC6 accede a DbContext desde clases no relacionadas con el controlador

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

Pregunta

Estoy desarrollando un sitio web ASP.Net5 MVC6 utilizando EF7.

Quería acceder a DbContext desde una de mis clases que no se llama desde el Controlador.

¿Se puede acceder desde allí? Si es así, por favor guíame un poco para que pueda aprender cómo hacerlo.

Hasta ahora buscó mucho de GitHub y stackoverflow. Muy poca información sobre este tema.

Si necesito inyectarme en mi clase, ¿cómo debo hacerlo?

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

Respuesta popular

Podrías llamar al new CarAppContext() .

Pero si desea utilizar la inyección de dependencia en su lugar, tendrá que asegurarse de que

  1. Ha registrado tanto CarAppContext como NotificationManager con el contenedor de inyección de dependencias (generalmente hecho en Startup.Configure)
  2. Instalar NotificationManager desde la inyección de dependencia

No te sorprende que no hayas encontrado documentos. Como ASP.NET 5 todavía está en versión beta, nuestros documentos aún no se han escrito. Cuando esté listo, habrá más publicados aquí: http://docs.asp.net/en/latest/fundamentals/dependency-injection.html




Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué