我正在使用.NET Core和MongoDB。当前它是一个数据库项目。现在,我想在我的项目中实现多租户。那是针对不同用户的单独数据库。当用户登录站点时,并根据该用户的详细信息,想要选择连接字符串。
https://web.archive.org/web/20140812091703/
http://support.mongohq.com/use-cases/multi-tenant.html
https://gunnarpeipman.com/aspnet/tenant-providers/
但是问题是我不知道如何在现有代码中实现它?
我现有的代码是
public MetaphorsContext(IMongoClient client,
IMongoDatabase database)
{
_client = client;
_database = database;
}
public IMongoCollection<Location> Locations
{
get ???
}
答案 0 :(得分:0)
如果您的方法涉及同一集群中的不同数据库,则您不需要不同的连接字符串,而只需一个字典即可将每个租户ID映射到其各自的table
:
MongoDatabase
如果不同的数据库保存在不同的群集中,那么您可以拥有一个字典,将每个租户ID映射到其各自的public IDictionary<string, IMongoDatabase> Databases = ...
string tenantID = ...
Databases.TryGetValue(tenantID, out var database);
// use database to get collections
。
MongoClient