我有一個帶有 Mongo Db 的 ASP.NET Core ntier 電子商務應用程式。順便說一下,我是 MongoDb 的新手。這個應用程式將在重負載下作業。
我已經創建了一個資料庫背景關系來連接 Mongo Db,但我很困惑我應該為背景關系使用靜態類嗎?
Mongo檔案說:
客戶端實體現在擁有與連接字串中指定的一個或多個服務器的連接池。
http://mongodb.github.io/mongo-csharp-driver/2.15/getting_started/quick_tour/
和這個 :
將 MongoClient 實體存盤在您的應用程式可全域訪問的位置。
https://www.mongodb.com/docs/manual/administration/connection-pool-overview/
我的背景關系類在這里,我想我應該用帶 DI 的 Singleton 來呼叫它。我應該怎么辦?謝謝
public class MongoDbContext
{
private readonly IMongoDatabase _database;
public MongoDbContext(IOptions<MongoSettings> settings)
{
var client = new MongoClient(settings.Value.ConnectionString);
_database = client.GetDatabase(settings.Value.Database);
}
public IMongoCollection<TEntity> GetCollection<TEntity>()
{
return _database.GetCollection<TEntity>(typeof(TEntity).Name.Trim());
}
public IMongoDatabase GetDatabase()
{
return _database;
}
}
uj5u.com熱心網友回復:
是的,您應該為MongoClient每個應用程式只保留每個集群的一個實體
除非應用程式連接到許多單獨的集群,否則每個應用程式使用一個 MongoClient 實體。
MongoClient 物件在大多數驅動程式中都是執行緒安全的。
參考
您可以將其保留為 Singleton。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/483866.html
標籤:asp.net-mvc mongodb asp.net 核心
上一篇:資料表跳過列的配置資料
