使用 EF Core 从 ToDo 列表中删除项目

问题描述 投票:0回答:1

我被要求更新 API 并通过以下代码实现

RemoveToDoItem

[HttpDelete("{id}", Name = "DeleteTodoItem")]
public async Task<IActionResult> RemoveTodoItem(int id)
{
    // TODO
    // Use EF Core to remove the item based on id

    throw new NotImplementedException();
}

这是我尝试运行程序时得到的错误代码

HttpRequestException:您必须首先实现 API 端点。 CandidateApi.cs 中的 Candidate.Web.Services.CandidateApi.RemoveTodoItem(int id)

        }
        catch (Exception ex)
        {
            throw new HttpRequestException("You must first implement the API endpoint.");
        }

        throw new HttpRequestException("You must first implement the API endpoint.");

不完全确定如何去做。我试过使用

DeleteTodoItem
变量但没有运气。任何帮助将不胜感激

c# api entity-framework todoist
1个回答
0
投票
  1. 通过将您的
    DbContext
    添加到构造函数参数中,将其注入到控制器中。
  2. Remove()
    DbSet<T>
    属性上使用
    DbContext
    方法将实体标记为删除。
  3. 调用
    SaveChangesAsync()
    将更改保存到数据库。
[HttpDelete("{id}", Name = "DeleteTodoItem")]
public async Task<IActionResult> RemoveTodoItem(int id)
{
    var todoItem = await _dbContext.TodoItems.FindAsync(id);

    if (todoItem == null)
        return NotFound();

    _dbContext.TodoItems.Remove(todoItem);
    await _dbContext.SaveChangesAsync();

    return NoContent();
}
© www.soinside.com 2019 - 2024. All rights reserved.