Спасибо, ребята. Я уже работал с несколькими провайдерами, но не знал, как их установить во время выполнения (и я уже искал этот форум. Должно быть, я использовал неправильные ключевые слова).
SharedDBConnectionScope кажется идеальным для работы на лету, но, похоже, не предназначен для установки провайдера на весь пользовательский сеанс.
Так что я сделал больше поиска, основываясь на ваших ответах выше, и нашел следующее решение:
1) Добавьте три провайдера для поиска, учетных записей и контактов и создайте DAL.
2) добавить это в DAL:
public static void SetProvider(string strProvider,string strConnectionString)
{
DataService.GetInstance(strProvider).DefaultConnectionString =
strConnectionString;
}
3) вызвать его при входе в систему, как только мое приложение определит, какие базы данных использует пользователь, например,
MyDAL.SSProvider.SetProvider("Lookups",
"server=10.123.456.78;port=3306;uid=whatever;pwd=blah;database=X")
MyDAL.SSProvider.SetProvider("Accounts",
"server=10.123.456.78;port=3306;uid=whatever;pwd=blah;database=Y")
MyDAL.SSProvider.SetProvider("Contacts",
"server=10.123.456.78;port=3306;uid=whatever;pwd=blah;database=Z")
И пошло-поехало.