我正在努力想要在默认的MVC 6项目的ApplicationDbContext
中获得ManageController.cs
。
我上网了,谷歌搜索了很多,但似乎没有人遇到与我相同的问题。它可能很简单,但我无法弄明白。 有人有想法吗?
以下是我的尝试:
IServiceProvider service = new IServiceProvider();
var _context = service.GetService<ApplicationDbContext>();
答案 0 :(得分:12)
使用构造函数注入:
public class ManageController
{
private readonly ApplicationDbContext _context;
public ManageController(ApplicationDbContext context)
{
_context = context;
}
}
然后您可以在控制器方法中使用_context
对象。文档的Dependency Injection部分提供了更多信息。
答案 1 :(得分:0)
我正在使用Visual Studio 2015 Update 3.在Visual Studio的未来版本中可能不需要执行以下某些步骤。
使用No Authentification
创建ASP.NET Core(带.NET Core)项目。
在软件包管理器控制台中,依次执行以下各项。
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
"tools":{}
。project.json
醇>
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
"Microsoft.VisualStudio.Web.CodeGeneration.Tools": "1.0.0-preview2-final",
appsettings.json
。
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=YourDatabaseName;Trusted_Connection=True;MultipleActiveResultSets=true"
},
ConfigureServices
之前startup.cs
将services.AddMvc();
添加到string connection = Configuration.GetConnectionString("DefaultConnection");
services.AddDbContext<YourContextName>(options => options.UseSqlServer(connection));
。getToken()