MVC6從與控制器無關的類訪問DbContext


我正在使用EF7開發ASP.Net5 MVC6網站。

我想從我的一個類中訪問DbContext,這個類沒有從Controller調用。

有可能從那裡訪問?如果是,那麼請指導我一點,以便我可以學習如何做到這一點。

到目前為止,從GitHub和stackoverflow中搜索了很多。關於這個主題的信息非常少。

如果我需要注入我的班級,那我該怎麼做?

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

熱門答案

你可以調用new CarAppContext()

但是如果你想使用依賴注入,你需要確保這一點

  1. 您已使用依賴項注入容器註冊了CarAppContext和NotificationManager(通常在Startup.Configure中完成)
  2. 從依賴注入實例化NotificationManager

你沒有找到文檔並不奇怪。由於ASP.NET 5仍處於測試階段,我們的文檔尚未編寫。準備好之後,會在這裡發布更多內容: http//docs.asp.net/en/latest/fundamentals/dependency-injection.html





許可下: CC-BY-SA
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因