我有多個集合,例如一個用于用戶、課程、行動計劃和疾病的集合,我如何將它們添加到 appsettings.json 以及如何在使用它們時在服務類中單獨呼叫它們
appsetting.json 檔案
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*",
"DatabaseSettings": {
"ConnectionString": "mongodb://localhost:27017",
"DatabaseName": "local",
"CollectionName": "startup_log"
}
}
啟動檔案
services.AddScoped<DataInterface, DataService>();
services.Configure<AppDbConfig>(Configuration.GetSection("DatabaseSettings"));
AppDbConfig 類
public class AppDbConfig
{
public string ConnectionString { get; set; } = null!;
public string DatabaseName { get; set; } = null!;
public string CollectionName { get; set; } = null!;
}
資料服務類
private readonly IMongoCollection<startup_log> startupLogs;
public DataService(IOptions<AppDbConfig> settings)
{
MongoClient client = new MongoClient(settings.Value.ConnectionString);
IMongoDatabase database = client.GetDatabase(settings.Value.DatabaseName);
startupLogs = database.GetCollection< startup_log >(settings.Value.CollectionName);
}
啟動日志檔案
public class startup_log
{
[BsonId]
[BsonRepresentation(BsonType.ObjectId)]
public string Id { get; set; }
[BsonElement("hostname")]
public string HostName { get; set; } = null!;
[BsonElement("startTime")]
public DateTime StartTime { get; set; }
[BsonElement("startTimeLocal")]
public string StartTimeLocal { get; set; } = null!;
}
uj5u.com熱心網友回復:
為了支持不同的集合,您可以重命名CollectionName配置中的屬性并為您需要支持的每個集合創建一個屬性,例如
public class AppDbConfig
{
public string ConnectionString { get; set; } = null!;
public string DatabaseName { get; set; } = null!;
public string StartupLogsCollectionName { get; set; } = null!;
public string OtherCollectionName { get; set; } = null!;
}
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*",
"DatabaseSettings": {
"ConnectionString": "mongodb://localhost:27017",
"DatabaseName": "local",
"StartupLogsCollectionName": "startup_log",
"OtherCollectionName": "otherDocs"
}
}
在您的DataService中,您可以在設定服務時使用不同的集合名稱:
private readonly IMongoCollection<startup_log> startupLogs;
private readonly IMongoCollection<OtherType> otherColl;
public DataService(IOptions<AppDbConfig> settings)
{
MongoClient client = new MongoClient(settings.Value.ConnectionString);
IMongoDatabase database = client.GetDatabase(settings.Value.DatabaseName);
startupLogs = database.GetCollection<startup_log>(settings.Value.StartupLogsCollectionName);
otherColl = database.GetCollection<OtherType>(settings.Value.OtherCollectionName);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/483868.html
標籤:C# 网 asp.net-mvc asp.net 核心 asp.net-web-api
下一篇:在這個For回圈計數沒有增加
