Если в вашем подходе используются разные базы данных в одном и том же кластере, вам не нужны разные строки подключения, а просто словарь, который сопоставляет каждый идентификатор арендатора с соответствующими MongoDatabase
:
public IDictionary<string, IMongoDatabase> Databases = ...
string tenantID = ...
Databases.TryGetValue(tenantID, out var database);
// use database to get collections
Если разные базы данных хранятся в разных кластерах, то у вас может быть словарь, который сопоставляет каждый идентификатор арендатора с соответствующим MongoClient
.
public IDictionary<string, IMongoClient> Clients = ...
string tenantID = ...
Clients.TryGetValue(tenantID, out var client);
// use client's databases and their collections