asp.net-mvc-5 - ASP .NET MVC,“上下文”在哪里实例化
问题描述
这是一个关于 ASP.NET MVC 如何工作的问题。现在我试图了解控制器如何从数据库传递数据。而且我看不到“上下文”来自脚手架控制器中构造函数的 args[0] 的位置。例如,当您从名为“item”的模型中构建控制器时,您将获得 ItemsController。StaffsConroller 的构造函数是这样的;
public ItemsController(DbContext context)
{
_context = context
}
变量“_context”在 ItemsController 中声明。但是“上下文”在哪里实例化?
解决方案
如果在 Startup.cs 中使用 Entity Framework 或配置依赖注入,则 DbContext 由 Dependency Injection 创建。你可以研究构造函数注入。
ASP.NET Core 应用程序使用依赖注入进行配置。可以使用 Startup.cs 的 ConfigureServices 方法中的 AddDbContext 将 EF Core 添加到此配置中。例如:
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
services.AddDbContext<ApplicationDbContext>(
options => options.UseSqlServer("name=ConnectionStrings:DefaultConnection"));
}
有关更多详细信息,您可以访问以下链接:ASP.NET Core 依赖注入中的 DbContext ,控制器中的依赖注入
推荐阅读
- python - 在子目录中实例化类时遇到问题
- python - ModuleNotFoundError 在 bash 脚本中执行 Python 命令时
- kubernetes - 为什么 simple kubectl(1.16) 运行会显示错误?
- ios - 我必须迅速删除内置的观察者吗?
- windows - 使用powershell在.txt文件中查找出现次数最多的字符串
- oracle - 是否可以在过程中将数组作为参数传递?
- r - 在 R 中使用带有循环的其他变量名创建新变量
- c++ - 如何使用值获取结构的索引
- ruby-on-rails - Ruby on Rails:对两个字段使用关联?
- r - 在R中将数据帧拆分为n组数据帧的函数