使用组合键创建 Postman Delete 请求

Create Postman Delete request with composite key

我在 Postman 工作,我是一个完全的初学者,目前正在学习数据库工作。 我使用 C# 和 Entity Framework 创建了一个带有小型本地数据库的 Web API 并用我想要的数据填充它。所有 Postman 请求都按设计工作,除了 PUT 和 DELETE 请求,我收到错误消息(放置时为 405,删除时为 500)。我怀疑这些与同一个问题有关,即我正在使用复合键。

另一方面,500 表示我正在使用复合键并且我只输入一个值。由于两个表之间存在多对多关系,我选择了复合键,但如何将其输入到删除请求中?有没有办法为此格式化请求 URL(因为如果我在删除请求的正文中放入任何内容,我会不断收到错误 405 Method Not Allowed)?

我确定我在这里遗漏了一些非常明显的东西,因为这并不像它应该那么复杂,但我找不到类似的问题。

编辑:

代码非常基础,不确定它对问题有什么影响,看起来像这样;

    {
        public int StudentId { get; set; }
        public int CourseId { get; set; }
        public Student Student { get; set; }
        public Course Course { get; set; }
    }

StudentId 和 CourseId 构成一个复合主键,我正在尝试删除 class StudentCourse 的一个对象。 suggested/needed 请求 url 是:/api/StudentCourses/{id} 因为它是复合键,所以我不知道如何输入。

HttpDelete 操作看起来像这样,请注意,这是自动生成的,我完全可以看出它不起作用,因为 StudentCourses 没有任何单个 ID 可以查找,因此 FindAsync 永远不会通过不管怎样,因为它找不到任何东西。

话虽如此,我不知道如何解决这个问题,因为操作本身只要求一个整数,这意味着 Postman 认识到在它到达这里之前我需要主键的更多部分。

        public async Task<IActionResult> DeleteStudentCourse(int id)
        {
            var studentCourse = await _context.StudentCourses.FindAsync(id);
            if (studentCourse == null)
            {
                return NotFound();
            }

            _context.StudentCourses.Remove(studentCourse);
            await _context.SaveChangesAsync();

            return NoContent();
        }

        private bool StudentCourseExists(int id)
        {
            return _context.StudentCourses.Any(e => e.StudentId == id);
        }

假设 Id 是一个学生 Id,而您正试图删除该学生的所有 StudentCourse 记录

[Route[("~/api/StudentCourses/DeleteStudentCourse/{id}")]
public async Task<IActionResult> DeleteStudentCourse(int id)
 {
var studentCourses = await _context.StudentCourses.Where(e => e.StudentId == id).ToListAsync();

 if (studentCourses == null || studentCourses.Count==0)
 {
     return NotFound();
 }

 _context.StudentCourses.RemoveRange(studentCourses);
 var result= await _context.SaveChangesAsync();

 if (result> 0) return Ok();

  return BadRequest();
}

建议url

.../api/StudentCourses/DeleteStudentCourse/{id}