Я работаю над Url Shortener в Asp.Net Core и использую MongoDB.В настоящее время у меня есть рабочий метод Get и рабочий метод Create.Я столкнулся с проблемой с моим методом Delete, и вот сообщение, которое я получаю:
Аргумент 1: невозможно преобразовать из 'MongoDB.Driver.FilterDefinition)', кандидаты: System.Threading.Tasks.Задача DeleteOneAsync (MongoDB.Driver.) (в классе IMongoCollectionExtensions)
Ошибка связана с этим ".DeleteOneAsync ( filter );"в моем классе 'ShortUrlRepository':
public async Task<ShortUrl> Delete(ShortUrl su)
{
var filter = Builders<Url>.Filter.Eq("Su", su);
return await _db.Urls.DeleteOneAsync(filter);
}
Мой класс ShortUrlsController, кажется, работает нормально, но я опубликую его в случае:
namespace ShortenUrls.Controllers
{
[Route("api/codes")]
public class ShortUrlsController : Controller
{
private readonly ShortUrlRepository _repo;
//private readonly IShortUrlService _service;
public ShortUrlsController(ShortUrlRepository repo /*IShortUrlService service*/)
{
_repo = repo;
//_service = service;
}
[HttpGet("{id}")]
public async Task<IActionResult> Get(string id)
{
var su = await _repo.GetAsync(id);
if (su == null)
return NotFound();
return Ok(su);
}
[HttpPost]
public async Task<IActionResult> Create([FromBody] ShortUrl su)
{
await _repo.CreateAsync(su);
return Ok(su);
}
[HttpDelete("{id}")]
public async Task<IActionResult> Delete (ShortUrl su)
{
try
{
if (su == null)
return new NotFoundResult();
await _repo.Delete(su);
return Ok("Deleted Successfully");
}
catch (Exception ex)
{
return BadRequest(ex.ToString());
}
}
}
}
Я пробовал другие методы удаления, ноПолучены похожие ошибки, так что, может быть, я что-то упустил?
Если кто-то может предложить некоторые предложения, я был бы очень признателен, поскольку я новичок в Asp.Net Core и у меня очень мало успеха в поиске решения этой ошибки.Если я могу предоставить больше информации , пожалуйста, , дайте мне знать.