Я рефакторинг проекта, который создает несколько DbCOntexts для каждого вызова метода в репозиториях данных. Итак, я хочу иметь один экземпляр DbContext для HTTP-запроса.Как использовать один экземпляр DbContext для каждого запроса с использованием Unity
Я попытался сделать:
container.RegisterType<ApplicationDbContext>(new PerRequestLifetimeManager());
и для каждого хранилища:
...
container.RegisterType<IBusinessRepository, BusinessRepository>(new InjectionConstructor(new ApplicationDbContext()));
container.RegisterType<ICountryRepository, CountryRepository>();
...
Но это создаст новый экземпляр DbContext() в хранилище, конечно.
Я попытался
container.RegisterType<IBranchCategoryRepository, BranchCategoryRepository>(
new InjectionConstructor(container.Resolve<ApplicationDbContext>()));
Но это дает мне:
PerRequestLifetimeManager может быть использован только в контексте запроса HTTP. Возможными причинами этой ошибки являются использование менеджера времени жизни в приложении nonASP.NET или использование его в потоке , не связанного с соответствующим контекстом синхронизации.
Как я могу вставлять один и тот же экземпляр в каждый репозиторий?
Спасибо, я предположил, что, но я получил необработанное исключение. После включения трассировки API я понял, что происходит; были другие классы, у которых были зависимости, которые были нарушены. Я приму свой ответ, это заставило меня взглянуть на него с другой точки зрения. –