【发布时间】:2018-08-23 22:58:41
【问题描述】:
我正在开发一个使用 MongoDB 的 asp.net 核心项目,并且我也在使用依赖注入。
当前系统的工作原理
只有一个数据库,连接字符串保存在appsettings.json中。一些设备会不断地通过 API 发送数据以将其保存在 MongoDB 数据库中,这样可以正常工作:)
现在我必须对其进行增强,将有多个数据库,数据应根据 API 请求保存在相关数据库中(我将在 API 请求中获取数据库名称)。
我的问题是如何根据 API 请求更改数据库?同时使用相同的 DbContext。不能创建多个 DbContext。
我对 MongoDb 和 asp.net 核心有些陌生,因此非常感谢任何帮助或指导。
这是我的 DbContext 类
public class DbContext
{
private IMongoDatabase _database;
protected readonly MongoClient mongoClient;
public DbContext(MongoSetting dbConnSettings)
{
var mongoUrl = new MongoUrl(dbConnSettings.ConnectionString);
var mongoClientSettings = MongoClientSettings.FromUrl(mongoUrl);
mongoClient = new MongoClient(mongoClientSettings);
if (mongoClient != null)
_database = mongoClient.GetDatabase(dbConnSettings.database);
}...
我的 StartUp 类的部分
services.AddTransient<CareHomeContext>();
services.AddSingleton(provider => provider.GetService<IOptions<MongoSetting>>().Value);
【问题讨论】:
标签: c# dependency-injection .net-core mongodb-.net-driver