MVC6从与控制器

时间:2015-07-31 15:22:30

标签: asp.net-core-mvc entity-framework-core

我正在使用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
    }
}

3 个答案:

答案 0 :(得分:1)

你可以致电| sku | JAN | Feb | |-----|-----|-----| | A1 | 2 | 1 | | A2 | 1 | 1 |

但是如果你想使用依赖注入,你需要确保

  1. 您已使用依赖项注入容器注册了CarAppContext和NotificationManager(通常在Startup.Configure中完成)
  2. 从依赖注入实例化NotificationManager
  3. 您还没找到文档就不足为奇了。由于ASP.NET 5仍处于测试阶段,我们的文档尚未编写。准备就绪后,会在此处发布更多内容:http://docs.asp.net/en/latest/fundamentals/dependency-injection.html

答案 1 :(得分:0)

依赖注入是&#34;病毒&#34;概念,你必须在应用程序中使用它 - 通过参数/属性传递依赖关系,并有单个(或几个)注册根。所以答案是 - 将NotificationManager注册为依赖项。

即使Microsoft的依赖注入实现已经足够抽象,因此您可以轻松地为每个组件注册依赖项(如Ninject模块)提供类。

答案 2 :(得分:0)

注意:请务必将其添加到您的文件中......

document.getElementById("chkbx").style.display = 'none';
document.getElementById("chkbx").style.display = 'block';