В среде MVC/WebAPI я бы использовал InRequestScope
для привязки DbContext
.
Тем не менее, теперь я нахожусь в приложении Консоль/роль службы Windows/Azure (не имеет значения, просто нет области веб-запроса), которая периодически создает несколько Tasks
которые выполняются асинхронно. Я хотел бы, чтобы каждая задача имела свой собственный DbContext
, и поскольку задачи выполнялись в их собственном потоке, я попытался DbContext
с помощью InThreadScope
.
К сожалению, я понимаю, что DbContext не удаляется, когда задача завершена. Что на самом деле происходит, поток возвращается в пул потоков, и когда ему назначается новая задача, у него уже есть DbContext, поэтому DbContexts остаются в живых навсегда.
Есть ли способ использования InThreadScope
здесь или я должен использовать другую область? Как ThreadScope можно использовать, когда потоки возвращаются из ThreadPool каждый раз?