我正在使用ASP.NET Core通过我的Microsoft Management Studio SQL服务器运行我的API。
我怎样才能让这个get请求只返回我提供的Student_ID的数据。如下图所示,当我调用这个GET请求时,我得到的对象是:apiGrades,但我希望它只在我的Student_ID与我的ID匹配时才显示。
public IQueryable<Grade> GetGrades()
{
return db.Grades;
}
// GET: api/Grades/5
[ResponseType(typeof(Grade))]
public async Task<IHttpActionResult> GetGrade(int id)
{
Grade grade = await db.Grades.FindAsync(id);
if (grade == null)
{
return NotFound();
}
return Ok(grade);
}
首先,根据 FindAsync文档,它返回具有指定主键的实体。
查找一个具有指定主键值的实体。
我是 假设 你上面的调用可能是返回 "Grade_ID=5 "的成绩。
你的第二个问题可能是,可能有多条记录有一个学生的成绩,但是看起来你只试图返回1个成绩。Grade
实体。
你可能想执行的代码是这样的。
IEnumerable<Grade> grades = await db.Grades.Where((g) => g.Student_ID == id)
.ToListAsync();
if (!grades.Any())
{
return this.NotFound();
}
return this.Ok(grades);