如何才能让这个API调用只在Student_ID=我提供的ID时返回?

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

我正在使用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);
    }

enter image description here

enter image description here

asp.net sql-server asp.net-web-api
1个回答
1
投票

首先,根据 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);

.Where is 线路 也就是 转换为SQL查询 来返回数据。值得熟悉Linq,因为它对处理数据非常有用。

© www.soinside.com 2019 - 2024. All rights reserved.