2013-02-07 4 views
2

J'utilise Entity Framework et Dependency Injection. Pour obtenir des résultats de base de données dans un contrôleur, je fais: -MVC, Entity Framework Connexion DBContext dans Global.asax

private IJobSeekerRepository repository; 

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

puis faire quelque chose comme .....

 return View(repository.GetAllJobSeekers); 

Je suis en train de suivre un tutoriel où vous pouvez régler la Thread.CurrentPrinciple dans le fichier Global.asax, à partir de la base de données. J'ai essayé pendant des heures maintenant d'obtenir les disques de la base de données dans le dossier global.

Comment puis-je définir un constructeur similaire au 'public JobseekersController' ci-dessus?

C'est ce que j'ai, mais son lancer une erreur sur « repository.GetJobSeekersRoles » - référence non définie à une instance d'un objet

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

Répondre

2

Il suffit d'utiliser l'objet DependencyResolver (msdn), comme il est intégré dans MVC:

en supposant que vous réglez l'DependencyResolver sur votre démarrage de l'application.

Questions connexes