我有一个接口,它的实现已在服务容器中与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);
}