我在我的專案中使用 MongoDB,我創建了一個這樣的資料庫背景關系:
public class PortfolioDbContext
{
public readonly IMongoCollection<PortfolioData> _portfolioCollection;
public PortfolioDbContext()
{
var client = new MongoClient("mongodb://localhost:27017");
_portfolioCollection = client.GetDatabase("portfolioServiceDb").GetCollection<PortfolioData>("Portfolios");
}
}
我要將它注入到我的存盤庫類中:
public PortfolioDbContext _db;
public DataService(PortfolioDbContext _db)
{
_db = this._db;
}
但db回傳null,我想我需要在我的啟動中注冊它:
services.AddSingleton<PortfolioDbContext>();
但我仍然為空,知道為什么嗎?
uj5u.com熱心網友回復:
錯誤出在 的建構式中DataService。您正在將this._db(類的變數)分配給 _db(建構式的引數),而不是相反。由于默認為public PortfolioDbContext _dbisnull并且您永遠不會為其分配不同的值,因此它仍然是null。
來自 Microsoft https://docs.microsoft.com/en-us/dotnet/csharp/fundamentals/coding-style/coding-conventions的編碼指南建議使用駝峰式大小寫,_并在類中使用帶有私有變數前綴的駝峰式大小寫和帶有駝峰的方法引數案例(無下劃線)。這有助于防止此類問題。
你DataService可能看起來像這樣:
public class DataService
{
private PortfolioDbContext _db;
public DataService(PortfolioDbContext db)
{
_db = db;
}
// ... some more methods
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/343445.html
