1 回答
TA贡献1786条经验 获得超11个赞
我想在非控制器类中使用依赖项注入来访问我的 DbContext 对象。
然后将这些类注入到控制器中,不要让控制器创建它们。
通常情况下,你会有
ShoppingCartController(网络 API),
ShoppingCartService(业务逻辑)
ShoppingCart(普通的旧 CLR 对象、数据持有者、无逻辑)
控制器应该注入服务。控制器甚至不知道有“上下文”这样的东西。该服务获取注入的上下文并执行所有业务逻辑。而购物车只是一个数据持有者。
请new
记住,如果您new
在代码中看到 a 并且它创建的东西不是普通的、愚蠢的数据持有者,那么它可能是错误的。
例子:
public class ShoppingCartController : Controller
{
private readonly IShoppingCartService shoppingCartService;
public ShoppingCartController(IShoppingCartService shoppingCartService)
{
this.shoppingCartService = shoppingCartService;
}
}
public class ShoppingCartService : IShoppingCartService
{
private readonly MrbFarmsDbContext context;
public ShoppingCartService(MrbFarmsDbContext context)
{
this.context = context;
}
}
- 1 回答
- 0 关注
- 72 浏览
添加回答
举报