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 關注
- 106 瀏覽
添加回答
舉報