第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

非控制器類無法訪問 DbContext

非控制器類無法訪問 DbContext

C#
LEATH 2023-09-16 15:16:43
我想在非控制器類中使用依賴項(xiàng)注入來訪問我的 DbContext 對象。我有一個(gè) ShoppingCart 控制器和一個(gè)購物車類,如下所示。在控制器類中,我成功注入了 DbContext,但在 ShoppingCart 類中卻沒有。因此,我顯式地從控制器傳遞 _context 對象。但是當(dāng)我想直接使用 ShoppingCart 時(shí),即不需要控制器傳遞對象。我收到 ObjectDescoped 異常。ShoppingCartController.cs:  public class ShoppingCartController : Controller  {    private readonly MrbFarmsDbContext _context;    private ShoppingCart cart;    public ShoppingCartController(MrbFarmsDbContext context)    {        _context = context;        cart = new ShoppingCart(_context);    }   }購物車.cs:public class ShoppingCart{    private MrbFarmsDbContext _context;           public ShoppingCart(MrbFarmsDbContext context)//this constructer is called from Controller class.    {                    _context = context;    }    public ShoppingCart()    {    }  }方法:    public static ShoppingCart GetCart(HttpContext context)    {        var cart = new ShoppingCart();        cart.ShoppingCartId = cart.GetCartId(context);        return cart;    }
查看完整描述

1 回答

?
Qyouu

TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超11個(gè)贊

我想在非控制器類中使用依賴項(xiàng)注入來訪問我的 DbContext 對象。

然后將這些類注入到控制器中,不要讓控制器創(chuàng)建它們。

通常情況下,你會有

  • ShoppingCartController(網(wǎng)絡(luò) API),

  • ShoppingCartService(業(yè)務(wù)邏輯)

  • ShoppingCart(普通的舊 CLR 對象、數(shù)據(jù)持有者、無邏輯)

控制器應(yīng)該注入服務(wù)??刂破魃踔敛恢烙小吧舷挛摹边@樣的東西。該服務(wù)獲取注入的上下文并執(zhí)行所有業(yè)務(wù)邏輯。而購物車只是一個(gè)數(shù)據(jù)持有者。

new記住,如果您new在代碼中看到 a 并且它創(chuàng)建的東西不是普通的、愚蠢的數(shù)據(jù)持有者,那么它可能是錯(cuò)誤的。


例子:

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;

? ? }

}


查看完整回答
反對 回復(fù) 2023-09-16
  • 1 回答
  • 0 關(guān)注
  • 118 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號