【发布时间】:2015-09-28 05:41:18
【问题描述】:
我正在使用带有存储库模式的 Asp.Net MVC 6 beta4。
在我的 Startup.cs 我有这样的东西:
services.AddEntityFramework()
.AddSqlServer()
.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration["Data:DefaultConnection:ConnectionString"]));
//Dependency Injection
services.AddTransient<IProductRepository, ProductRepository>();
在我的控制器中,我可以通过以下方式获取我的 ApplicationDbContext 实例:
[FromServices]
public ApplicationDbContext DbContext { get; set; }
但是我无法在我的 Repository 实现中使用上面的这个 self 段代码获取 ApplicationDbContext 的实例。
在 MVC 5 中,我在我的存储库中使用了 ServiceLocator 并使用了 ApplicaionDbContext,所以:
var context = ServiceLocator.Current.GetInstance<ApplicationDbContext>()
如何使用 Asp.NET MVC 6 在我的存储库中获取 ApplicationDbContext 的实例?
【问题讨论】:
-
我会到的!谢谢!
-
为什么要使用属性注入而不是构造函数注入?
-
@ErikFunkenbusch,通过构造注入,我可以像在 MVC6 中使用属性注入一样获得实例吗?因为使用 [FromServices] 我在会话中获得了 ApplicationDbContext。
-
@ErikFunkenbusch 我这样做了吗?
标签: asp.net-mvc asp.net-core-mvc entity-framework-core