为什么依赖项在控制器中注入DBContext的作用域实例和单例,会引发无效的操作异常?

我有一个接口,它的实现已在服务容器中与DBContext一起注册为单例服务。我在这两种服务的控制器中都使用了依赖注入,但是它引发了以下异常:

InvalidOperationException: Cannot consume scoped service 'DepartmentOrders.Data.OrderTypeContext' from singleton 'DepartmentOrders.ShoppingCart.ICartDB'.

我不打算将单例服务设为 consumption dbcontext,并认为它们将是单独的服务,这意味着不应存在任何父子关系,但是我几乎不熟悉这种服务。我肯定在这里想念什么。

如果我删除控制器中的任何进样针并留下一个,程序将按预期工作。

ConfigureServices方法:

public void ConfigureServices(IServiceCollection services)
{
    services.AddSingleton<ICartDB,CartDB>();

    services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

    services.AddDbContext<OrderTypeContext>(options =>
        options.UseSqlServer(Configuration.getconnectionString("DP_Orders") ));
}

控制器:

ICartDB Cart;
private readonly OrderTypeContext Data;

public HomeController(OrderTypeContext _Data,ICartDB _Cart)
{
    this.Cart = _Cart;
    this.Data = _Data;
}

public async Task<IactionResult> Index()
{
    return View(await Data.Departments.ToListAsync());
}

单身人士:

public interface ICartDB 
{
    bool Exists(int ItemId);
    bool IsEmpty();
    Dictionary<int,int> getcart();
    void DeleteItem(string ItemId);
    void AddItem(int ItemId,int Quantity);
    void EditItem(int ItemId,int Quantity);
}
buyitgo 回答:为什么依赖项在控制器中注入DBContext的作用域实例和单例,会引发无效的操作异常?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3106491.html

大家都在问