Asp.net mvc Json格式的web api结果应仅返回特定数据
我有两张桌子: 学生(学生ID、学生姓名、ClassId) 类(ClassId,ClassName) 当我调用WebAPI获取一个学生的记录时,它会返回该学生以及与该类相关的所有其他学生 而我只想得到一个学生上课的记录 我在其中使用了实体框架 制作另一个modelView时,可以获得准确的结果。但我不想再做一个模型Asp.net mvc Json格式的web api结果应仅返回特定数据,asp.net-mvc,entity-framework,asp.net-web-api,Asp.net Mvc,Entity Framework,Asp.net Web Api,我有两张桌子: 学生(学生ID、学生姓名、ClassId) 类(ClassId,ClassName) 当我调用WebAPI获取一个学生的记录时,它会返回该学生以及与该类相关的所有其他学生 而我只想得到一个学生上课的记录 我在其中使用了实体框架 制作另一个modelView时,可以获得准确的结果。但我不想再做一个模型 public IHttpActionResult GetStudent(int id) { Student student = db.Students.Fin
public IHttpActionResult GetStudent(int id)
{
Student student = db.Students.Find(id);
if (student == null)
{
return NotFound();
}
return Ok(student);
}
我得到的结果类似于Json
"Class": {
"Students": [
{
"StudentId": 12,
"StudentName": "Ahtasham Ul Haq",
"ClassId": 2
},
{
"StudentId": 14,
"StudentName": "Waseem Akram",
"ClassId": 2
}
],
"ClassId": 2,
"ClassName": "MCS"
},
"StudentId": 5,
"StudentName": "Basit Ali"
"ClassId": 2
但是我想得到学生id为5而不是12和14的结果。比较您发布的响应和显示的控制器操作,我猜您的
学生的中也有一个导航属性。通过将Find
替换为SingleOrDefault
,您只能返回没有关联子数据的学生详细信息。使用SingleOrDefault
,如果要包含相关实体,则需要明确地。包含它们,否则将只返回指定实体的数据
public IHttpActionResult GetStudent(int id)
{
Student student = db.Students.SingleOrDefault(x => x.StudentId == id);
if (student == null)
{
return NotFound();
}
return Ok(student);
}
比较您发布的响应和显示的控制器操作,我猜您在您的学生
中也有一个类
的导航属性,这在您的帖子中没有提到。通过将Find
替换为SingleOrDefault
,您只能返回没有关联子数据的学生详细信息。使用SingleOrDefault
,如果要包含相关实体,则需要明确地。包含它们,否则将只返回指定实体的数据
public IHttpActionResult GetStudent(int id)
{
Student student = db.Students.SingleOrDefault(x => x.StudentId == id);
if (student == null)
{
return NotFound();
}
return Ok(student);
}
查看json有点让人困惑。是否包含代码文本中未包含的内容?如果是,则显示学生类查看json有点混乱。是否包含代码文本中未包含的内容?如果是,则显示学生课堂