依赖注入-MVC,Global.asax中的实体框架DBContext连接



我使用的是实体框架和依赖注入。为了在控制器中获得数据库结果,我正在做:-

    private IJobSeekerRepository repository;
    public JobseekersController(IJobSeekerRepository Repository)
    {
        repository = Repository;
    }

然后做一些类似……的事情。。。。。

     return View(repository.GetAllJobSeekers);

我正在尝试遵循一个教程,在该教程中,您可以从数据库在Global.asax文件中设置Thread.CurrentPrinciple。我已经试了好几个小时把数据库中的记录放到全局文件中。

如何设置类似于上面的"public JobseekersController"的构造函数?

这就是我所拥有的,但它在"repository.GetJobSeekersRoles"上抛出了一个错误-对象引用未设置为对象的实例

    public IJobSeekerRepository repository;
    void Application_AuthenticateRequest(object sender, EventArgs e)
    {
        if (Request.IsAuthenticated)
        {
            var ctx = HttpContext.Current;
               string[] roles = repository.GetJobSeekersRoles(ctx.User.Identity.Name);
               var newUser = new GenericPrincipal(ctx.User.Identity, roles);
               ctx.User = Thread.CurrentPrincipal = newUser;
        }
    }

只需使用DependencyResolver对象(msdn),因为它内置在MVC中:

var repository = DependencyResolver.Current.GetService<IJobSeekerRepository>();

假设您在应用程序启动时设置DependencyResolver

最新更新