Я чувствую, что, возможно, я не понял вопроса (поскольку я ничего не знаю о хранилище ключей Azure), но вы на самом деле не получаете строку подключения в Application_Start
...
Глядя на этот ответ , я думаю, вы можете реализовать функцию, которая будет возвращать желаемую строку подключения на основе переменной:
string GetConnectionString()
{
if (/* some dynamic variable is set */) {
return "DB1";
}
else {
return "DB2";
}
}
Теперь, если у вас есть вышеуказанная функция, вы можете использовать еечтобы инициализировать DbContext
:
MyDbContext myDbContext = new MyDbContext(GetConnectionString());
Или, если вы вводите DbContext
, вы можете использовать его в своем коде DI (пример кода):
kernel.Bind<IMyDbContext>()
.ToConstructor(ctorArg => new MyDbContext(GetConnectionString()))
.InRequestScope();