Как подключить Dependency Injection сервис

Пытаюсь работать с контекстом данных через его интерфейс и при этом постоянно не создавая его экземпляры, когда возникает необходимость достать данные из базы. Сам контекст выглядит так

public class ApplicationContext : IdentityDbContext<UserViewModel, Role, string>
    {
        public Microsoft.EntityFrameworkCore.DbSet<DrinkViewModel> Drinks { get; set; }
        public Microsoft.EntityFrameworkCore.DbSet<ShoppingBasketViewModel> ShoppingBaskets { get; set; }
        public Microsoft.EntityFrameworkCore.DbSet<PurchasedGoodViewModel> PurchasedGoods { get; set; }
        public Microsoft.EntityFrameworkCore.DbSet<OrderViewModel> Orders { get; set; }
        public ApplicationContext(DbContextOptions<ApplicationContext> options)
                : base(options)
        {
        }

        public ApplicationContext()
        {
            Database.EnsureCreated();
        }
     }

Интерфейс выглядит так:

 public interface IApplicationContext
    {
        DbSet<DrinkViewModel> Drinks { get; set; }
        DbSet<OrderViewModel> Orders { get; set; }
        DbSet<PurchasedGoodViewModel> PurchasedGoods { get; set; }
        DbSet<ShoppingBasketViewModel> ShoppingBaskets { get; set; }
    }

В Startupe через AddScoped подключаю контекст:

public void ConfigureServices(IServiceCollection services)
        {
            string connection = Configuration.GetConnectionString("DefaultConnection");
            services.AddDbContext<IdentityDbContext<UserViewModel, Role, string>, ApplicationContext>(options =>
                options.UseSqlServer(connection));
            
            services.AddScoped<IApplicationContext, ApplicationContext>();

            services.AddIdentity<UserViewModel, Role>().
                AddEntityFrameworkStores<ApplicationContext>().
                AddDefaultTokenProviders();
            services.AddDistributedMemoryCache();
            services.AddSession();

В этом случае выдается ошибка "Some services are not able to be constructed' ". Не могли вы подсказать, как ее исправить? И Как обращаться впоследствии к контексту? Если в поле, то все равно приходится заново создавать экземпляр

private IApplicationContext context = new ApplicationContext();

Заранее спасибо за помощь!


Ответы (0 шт):