В моем базовом веб-API ASP.NET мне нужно использовать MongoDb. Ниже приводится моя реализация до сих пор, но я застрял в разрешении зависимостей.Инъекция зависимостей для сторонних данных в ядре ASP.NET
DataContext:
public class AppDbContext
{
public IMongoDatabase MongoDatabase { get; set; }
public AppDbContext()
{
var client = new MongoClient("mongodb://localhost:27017");
MongoDatabase = client.GetDatabase("cse-dev-db");
}
}
Repository:
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: Я уже видел this, но он не работает.
Update
Я попытался, как за комментарий пользователем
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddApplicationInsightsTelemetry(Configuration);
services.AddScoped<AppDbContext>();
services.AddMvc();
services.AddScoped<IBuyRepository, BuyRepository>();
}
Теперь я получаю следующее исключение
Не удалось разрешить услугу типа «CseApi.Repositories.BuyRepository 'при попытке активировать ' CseApi.Controllers.ValuesController '.
Я не уверен, если это не работает, мне нужно, чтобы проверить его вручную. Странно, что статья mongo db post не тестируется. – mybirthname
Вы используете пакет NuGet для поддержки поддержки MongoDB? – mtaanquist
Да '' mongocsharpdriver ":" 2.3.0 "' –