Search code examples
c#.netasp.net-coreasp.net-core-mvcasp.net-mvc-controller

How to get the database context in a controller


I am trying all day to figure out to get the ApplicationDbContext in the ManageController.cs of a default MVC 6 project.

I went online and Googled a lot but no one seems to have the same problem as I have with it. It is probably simple but I can't figure it out. Anyone has an idea?

Here is what I tried:

IServiceProvider service = new IServiceProvider();
var _context = service.GetService<ApplicationDbContext>();

Solution

  • Use constructor injection:

    public class ManageController
    {
        private readonly ApplicationDbContext _context;
    
        public ManageController(ApplicationDbContext context)
        {
            _context = context;
        }
    }
    

    Then you can use the _context object in your controller methods. There's more info in the Dependency Injection section of the docs.