asp.net-core – 如何从控制器中解析ASP NET 5中的EF7当前数据库
我想在ASP NET 5 / EF 7应用程序中为每个请求获取一个上下文,以便在某些方法中使用它(不在控制器中).
不幸的是我没有在文档中找到答案 解决方法
您可以使用某些方法来实现此目的.
使用.AddDbContext< ApplicationDbContext>();在依赖注入系统中注册ApplicationDbContext的方法(在ConfigureServices()方法中)导致它注册为Scoped依赖(或者换言之“每个请求”).因此,您只需要从依赖注入系统获取它. >将dbContext作为构造函数方法的参数添加到您的类中(您将使用dbContext).然后你必须使用依赖注入系统来获得这个类,例如将它添加为控制器构造函数的参数. public class HabitsController : Controller { public HabitsController(HabitService habitService) { } } public class HabitService { private GetHabitsContext _dbContext; public HabitService(GetHabitsContext dbContext) { _dbContext = dbContext; } } >但是如果你不想使用构造函数注入来获取上下文,你可以使用GetService()方法得到必要的依赖项(但是你需要在ServiceProvider实例中,在下面的示例中,我也可以通过构造函数注入) . using Microsoft.Framework.DependencyInjection; // for beta 6 and below using Microsoft.Extensions.DependencyInjection; // for beta 7 and above public class HabitService { private IServiceProvider _serviceProvider; public HabitService(IServiceProvider serviceProvider) { _serviceProvider = serviceProvider; } public GetHabit() { var dbcontext = _serviceProvider.GetService<ApplicationDbContext>(); } } >在第一种方法中,我们也可以通过GetService()方法获取HabitService(而不是通过构造函数注入). using Microsoft.Framework.DependencyInjection; // for beta 6 and below using Microsoft.Extensions.DependencyInjection; // for beta 7 and above public class HabitsController : Controller { public HabitsController(IServiceProvider serviceProvider) { var habitService= serviceProvider.GetService<HabitService>(); } } public class HabitService { private GetHabitsContext _dbContext; public HabitService(GetHabitsContext dbContext) { _dbContext = dbContext; } } 谢谢Tseng的评论:
我检查过,这是相同的背景. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-core – 为什么Bind属性似乎破坏了我对嵌套对象的模
- .NET中的FileUpload控件的使用-Jquery(一)
- asp.net – 你预编译你的网站,为什么不为什么不呢?
- asp.net – ASP MVC授权所有操作除了几个
- asp.net-core – ASP.NET Core无法创建根证书
- asp.net – 在web.config下为url重写的多个外部文件
- 如何添加自定义属性到ASP.NET控件
- asp.net-mvc – 没有OWIN的SignalR
- 在asp.net mvc 3中实现FilterAttribute,IActionFilter和继承
- asp.net-mvc – 如何在VS2008 Web Devloper Express中的一个
- asp.net – 将Windows身份验证与表单身份验证混合
- asp.net – Response.End()和Response.Flush()之
- asp.net-mvc – 如何在SQL Server中为Asp.Net MV
- asp.net-mvc – 如何与NopCommerce MVC合作
- asp.net-mvc – DateTime字段和Html.TextBoxFor(
- asp.net-mvc – 在部署MVC 2 Web应用程序时要绝对
- asp.net – 如何在控制器中获取路由URL?
- asp.net – UpdatePanel没有名为’TextBox’的公
- .net – UpdatePanel中的FileUpload控件,不刷新整
- 如何在ASP.NET WebService调用中动态初始化文化?