Ich habe eine Anwendung, die an 2 verschiedenen Standorten verwendet wird. Jede Site hat ihre eigene Datenbank.Einen DbContext in die Verwendung von Ninject Dependency-Injektion pro Benutzersitzung wechseln
Es gibt 2 DbContexte, 1 für jede Site. Wenn der Benutzer meine Anwendung öffnet, gibt es eine Begrüßungsseite, auf der sie ihre Website auswählen. Nach der Auswahl der Site wird der Kernel neu gebootet, um den DbContext für die ausgewählte Site zu verwenden.
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;
}
}
Jetzt für die Bob & Mary Erklärung: Dies funktioniert gut, wenn Bob Website wählt 1. Aber wenn Mary eine Website 2. Die DbContext für Bob wählt erneut gebunden Website 2. Was ich will, ist für Bob und Mary in der Lage, die Anwendung gleichzeitig zu verwenden, ohne sich gegenseitig zu beeinflussen.
Ich habe versucht mit TransientScope, ThreadScope und InRequest Scope, aber keiner von diesen hat funktioniert.
Die Anwendung auf einem IIS-Server wird pro Anwendung für jede Hilfe
Wie wäre es mit dem Einsatz von Ninject Provider für diesen Zweck? Oder binden Sie an Methode statt an Rebind. – MaKCbIMKo