Entity Framework Code Отношение «один ко многим» возвращает данные с помощью веб-API - PullRequest
0 голосов
/ 05 мая 2019

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

 public class Respondent
    {
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int RespondentId { get; set; }
        public User Requester { get; set; }

        public User Provider { get; set; }
        public string Role { get; set; }

        [NotMapped]
        public ICollection<User> Providers { get; set; }
    }

public class User
    {
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int UserId { get; set; }
        public int UPI { get; set; }
        public string Name { get; set; }


        public string Email { get; set; }


        public bool IsPublic { get; set; }
        [NotMapped]
        public string Profile_Pic { get; set; }
        [NotMapped]
        public string Role { get; set; }
        [NotMapped]
        public List<string> Roles { get; set; }
    }

Теперь я хочу получить всех респондентов, используя следующий метод веб-API, но я не получаю правильный набор результатов, и он показывает нулевые значения для провайдера и запрашивающей стороны и только возвращает идентификатор респондента.

        public IQueryable<Respondent> GetRespondents()
        {
            return db.Respondents;
        }

1 Ответ

1 голос
/ 05 мая 2019

Вы можете использовать функцию Include() для загрузки связанных данных через свойства навигации вашей модели.

Как то так.

// GET: api/Respondents


public IQueryable<Respondent> GetRespondents() 
{ 
return db.Respondents.
Include(user=>user.Requester)
    .Include(pro=pro.Providers).ToList();
}

Обратите внимание, что если вы используете EntityFramework Core, вам нужно следующее пространство имен

using Microsoft.EntityFrameworkCore;

В противном случае вам нужно:

using System.Data.Entity; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...