У меня есть приложение, которое используется на двух разных сайтах. У каждого сайта есть своя база данных.Переключение DbContext на использование инъекции зависимостей Ninject на сеанс пользователя
Есть 2 DbContexts, 1 для каждого сайта. Когда пользователь открывает мое приложение, появляется всплывающая страница, где они выбирают свой сайт. После выбора сайта ядро отскакивает, чтобы использовать DbContext для выбранного сайта.
private void RebindDbContext(string site)
{
switch (site)
{
case "Site1":
_kernel.Rebind<DbContext>().To<DbContext1>().InRequestScope();
break;
case "Site2":
_kernel.Rebind<DbContext>().To<DbContext2>().InRequestScope();
break;
}
}
Теперь для Боба & Мэри объяснения: Это прекрасно работает, когда Боб выбирает сайт 1. Но когда Мэри выбирает сайт 2. DbContext для Боба повторно связан с сайтом 2. То, что я хочу для Боба и Мэри можно использовать приложение одновременно, не затрагивая друг друга.
Я пробовал использовать TransientScope, ThreadScope и InRequest Scope, но ни один из них не работал.
Приложение выполняется на сервере IIS
Спасибо за любую помощь
Как насчет использования поставщика ninject для этой цели? Или привязайтесь к методу вместо повторной привязки. – MaKCbIMKo