StuiterSlurf StuiterSlurf - 3 months ago 19
C# Question

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>();

Answer

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.