Если вы посмотрите в Context.tt строку 35, вы увидите следующий код:
public <#=DatabaseName#>DB()
{
DataProvider = ProviderFactory.GetProvider("<#=ConnectionStringName#>");
Init();
}
Именно здесь провайдер настраивает вас, поэтому, если вы добавите переменную BackupConnectionStringName в Settings.ttinclude после ConnectionStringName в строке 20, вы сможете проверить, работает ли ваше соединение, и, если нет, использовать ваш запасной вариант. Например:
public <#=DatabaseName#>DB()
{
DataProvider = ProviderFactory.GetProvider("<#=ConnectionStringName#>");
Init();
try
{
DataProvider.CreateConnection();
}
catch(SqlException)
{
DataProvider = ProviderFactory.GetProvider("<#=BackupConnectionStringName#>");
Init();
}
}
NB. Вам может потребоваться выполнить некоторую очистку, чтобы убедиться, что CreateConnection не оставляет соединение открытым.