如何在控制器中获取数据库上下文

我整天都在努力想要在默认的MVC 6项目的ManageController.cs中获取ApplicationDbContext

我上网了,谷歌搜索了很多,但似乎没有人像我一样有问题。 这可能很简单,但我无法弄清楚。 有人有想法吗?

这是我尝试过的:

 IServiceProvider service = new IServiceProvider(); var _context = service.GetService(); 

使用构造函数注入:

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

然后,您可以在控制器方法中使用_context对象。 在文档的dependency injection部分中有更多信息。

我正在使用Visual Studio 2015 Update 3.在Visual Studio的未来版本中可能不需要以下某些步骤。

  1. 使用No Authentification创建ASP.NET Core(带.NET Core)项目。

  2. 在程序包管理器控制台中,依次执行以下各项。

  Install-Package Microsoft.EntityFrameworkCore.SqlServer Install-Package Microsoft.EntityFrameworkCore.Tools –Pre Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Tools -Pre Install-Package Microsoft.VisualStudio.Web.CodeGenerators.Mvc -Pre 
  1. 将以下内容添加到project.json定义的"tools":{}
 "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final", "Microsoft.VisualStudio.Web.CodeGeneration.Tools": "1.0.0-preview2-final", 
  1. 将以下内容添加到appsettings.json
 "ConnectionStrings": { "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=YourDatabaseName;Trusted_Connection=True;MultipleActiveResultSets=true" }, 
  1. services.AddMvc();之前,将以下内容添加到startup.cs ConfigureServices services.AddMvc();
 string connection = Configuration.GetConnectionString("DefaultConnection"); services.AddDbContext(options => options.UseSqlServer(connection));