Результат из веб-API в формате Json должен возвращать только определенные данные - PullRequest
1 голос
/ 08 мая 2019

У меня есть две таблицы:

Student (StudentId, StudentName, ClassId)

Class (ClassId, ClassName)

Когда я вызываю Web Api для получения записиЗатем ученик возвращает ученика и всех остальных учеников, связанных с этим классом.

Хотя я хочу просто получить запись об одном ученике, имеющем класс.

Я использовал Entity Framework в нем.

Можно получить точный результат при создании другого вида модели.Но я не хочу делать другую модель.

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

Но Ш хочет получить результат, если у ученика есть идентификатор 5, а не для12 и 14.

1 Ответ

0 голосов
/ 08 мая 2019

Сравнивая отправленный вами ответ и показанное действие контроллера, я предполагаю, что у вас есть свойство навигации для Class в вашем Student, которое не упоминается в вашем посте.Вы можете вернуть данные об ученике только без связанных дочерних данных, заменив Find на SingleOrDefaultSingleOrDefault, если вы когда-либо захотите включить связанные сущности, вам нужно специально .Include их, иначе вам будут возвращены только данные для указанной сущности.

public IHttpActionResult GetStudent(int id)
{
    Student student = db.Students.SingleOrDefault(x => x.StudentId == id);
    if (student == null)
    {
        return NotFound();
    }
    return Ok(student);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...