Ninject, Bind должен быть .InRequestScope() ИЛИ .InSingletonScope()

У меня есть код ниже. Один привязан к моему репозиторию пользователей, а другой - к кэшу. Какую область действия я должен использовать для UserRepository и Cache. Должна ли область охвата UserRepository быть одиночной?

    this.Bind<IUserRepository>().To<UserRepositary>().InRequestScope();

    this.Bind<IDistributedCacheService>().To<DistributedCacheService>().InSingletonScope();

Ответ 1

Обычно репозитории привязаны к inququestscope, потому что это обычно определяет размер транзакции или размер транзакции базы данных.

Обновление: вот немного больше информации об управлении критическими ресурсами с помощью ninject. Я столкнулся с этим, привязывая свой repos inrequestscope.

http://bobcravens.com/2010/11/using-ninject-to-manage-critical-resources/

Боб