Самый простой способ проверить, подключены ли вы к серверу MongoDB (локальному или удаленному, - использовать следующий код API (это также можно сделать с помощью консольного приложения или проекта mvc):
Создайте следующие классы и измените следующие
Контроллер
using System.Collections.Generic;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using {{YourApplicationName}}.Repository;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
[Route("api/[controller]")]
[ApiController]
public class YourControllerName : ControllerBase
{
private readonly IRepository _repo;
[HttpGet, Route("CheckConnection")]
public async Task<IActionResult> CheckConnection()
{
var result = await _repo.CheckConnection();
if (result == null || result.Count <= 0)
return BadRequest("Failed to connect to database.");
return Ok("Database connection was successful");
}
IRepository
using MongoDB.Bson;
using System.Collections.Generic;
using System.Threading.Tasks;
public interface IRepository
{
Task<List<BsonDocument>> CheckConnection();
}
Репозиторий
using Microsoft.Extensions.Configuration;
using MongoDB.Bson;
using MongoDB.Driver;
using System.Collections.Generic;
using System.Threading.Tasks;
public class Repository : IRepository
{
private readonly MongoClient _client;
private readonly IMongoDatabase _database;
public async Task<List<BsonDocument>> CheckConnection()
{
List<BsonDocument> list = await _database.ListCollections().ToListAsync();
var populatedList = (list != null && list.Count > 0) ? list : null;
return populatedList;
}
}
appSettings. json
Добавить в файл
"DatabaseSettings": {
"ConnectionString": "Your Server Connection String"
}
Database Settings.cs
public class DatabaseSettings
{
public string ConnectionString { get; set; }
}
Startup.cs
Добавить эту строку в метод настройки служб
services.AddSingleton(sp =>
sp.GetRequiredService<IOptions<DatabaseSettings>>().Value);
Убедитесь, что вы создали хотя бы одну БД и хотя бы одну коллекцию.
Запустите приложение в режиме отладки и вызовите метод с помощью Postman, и вы должны получить список коллекций обратно. Если так, то соединение с БД прошло успешно. Если нет, проверьте строку подключения.