第三方数据上下文的依赖注入.净的核心
本文关键字:核心 注入 依赖 上下文 第三方 数据 | 更新日期: 2023-09-27 18:11:29
. NET核心Web API,我需要使用MongoDb。以下是我到目前为止的实现,但我被困在解决依赖关系。
DataContext:
public class AppDbContext
{
public IMongoDatabase MongoDatabase { get; set; }
public AppDbContext()
{
var client = new MongoClient("mongodb://localhost:27017");
MongoDatabase = client.GetDatabase("cse-dev-db");
}
}
存储库:
public class BuyRepository: IBuyRepository {
private readonly AppDbContext _appDbContext;
public BuyRepository(AppDbContext appDbContext) {
_appDbContext = appDbContext;
}
public Buy Add(Buy buy) {
_appDbContext.MongoDatabase.GetCollection<Buy("Buy").InsertOne(buy);
return buy;
}
}
控制器:
private readonly BuyRepository _buyRepository;
public ValuesController(BuyRepository buyRepository) {
_buyRepository = buyRepository;
}
我的问题是如何在ConfigureServices
中添加这些依赖关系
public void ConfigureServices(IServiceCollection services) {
services.AddApplicationInsightsTelemetry(Configuration);
services.AddMvc();
// How to add dependencies here
}
PS:我已经看到了这个,但是它不工作。
<标题> 更新我已经按照用户的评论试过了
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddApplicationInsightsTelemetry(Configuration);
services.AddScoped<AppDbContext>();
services.AddMvc();
services.AddScoped<IBuyRepository, BuyRepository>();
}
现在我得到以下异常
标题>无法解析服务的类型"CseApi.Repositories。在尝试激活时购买存储库"CseApi.Controllers.ValuesController"。
尝试注册如下服务:
public void ConfigureServices(IServiceCollection services) {
services.AddApplicationInsightsTelemetry(Configuration);
services.AddScoped<AppDbContext>();
services.AddScoped<IBuyRepository, BuyRepository>();
services.AddMvc();
// How to add dependencies here
}
更新注释
控制器代码应该如下所示:
private readonly IBuyRepository _buyRepository;
public ValuesController(IBuyRepository buyRepository) {
_buyRepository = buyRepository;
}
从this更新你的控制器注入:
private readonly BuyRepository _buyRepository;
:
private readonly IBuyRepository _buyRepository;