Базовая структура Entity Framework Ядро-первый подход отношения один ко многим возвращает ноль - PullRequest
0 голосов
/ 26 мая 2019

Я новичок в Entity Framework Core, в моем коде есть несколько объектов класса Questions и список вариантов ответов на эти вопросы. Мой список запросов Choices всегда возвращает Null.

Вот мои занятия:

public class Questions
{
    [Key]
    public int QuestionID { get; set; }
    public string  Question { get; set; }

    public ICollection<Choices> choices { get; set; }
}

public class Choices
{
    [Key]
    public int ChoicesId { get; set; }
    public int QuestionId { get; set; }
    public Questions questions  { get; set; }
    public string Choice { get; set; }
}

public class SqlUserRepository : IUserRepository
{
    private readonly AppDbContext context;

    public SqlUserRepository(AppDbContext context)
    {
        this.context = context;
    }

    public List<Questions> getAllQuestions()
    {
        return context.questions.ToList();
    }
}

Я получаю это O / p. выбор всегда возвращает нуль

[
    { "questionID":1, "question":"which is your fav.heroien", "choices":null },
    { "questionID":2, "question":"which is your fav.hero", "choices":null  } 
]

Я ожидаю этот вывод

[{"questionID":1,"question":"which is your fav.heroien","choices":[{"choicesId":5,"questionId":1,"questions":null,"choice":"kajol Agarwal"},{"choicesId":6,"questionId":1,"questions":null,"choice":"Thammanna Bhatia"},{"choicesId":7,"questionId":1,"questions":null,"choice":"Anushka Shetty"},{"choicesId":8,"questionId":1,"questions":null,"choice":"Keerthi Suresh"}]},{"questionID":2,"question":"which is your fav.hero","choices":[{"choicesId":1,"questionId":2,"questions":null,"choice":"upendera"},{"choicesId":2,"questionId":2,"questions":null,"choice":"real star"},{"choicesId":3,"questionId":2,"questions":null,"choice":"Super star"},{"choicesId":4,"questionId":2,"questions":null,"choice":"Only star"}]}]

Ответы [ 3 ]

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

Как создать приложение с использованием подхода «сначала код» и с реляционными данными, ссылка будет шаг за шагом ориентироваться в применении подхода «код сначала».

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

Согласно Документам, связанным с загрузкой ядра EF , вы должны использовать .Include для загрузки связанных данных следующим образом:

public List<Questions> getAllQuestions()
{
    return context.questions.Include(q => q.choices).ToList();
}
0 голосов
/ 26 мая 2019
public List<Questions> getAllQuestions()
  {
    return context.questions.Include(q => q.choices).ToList();
  }

Include () позволяет указать, какие связанные объекты должны быть прочитаны из базы данных как часть одного и того же запроса.

Окончательный оператор, который вызывает Include («Выбор»), может выглядеть следующим образом:

SELECT *
FROM questions JOIN Choices ON questions.Id = Choices.questionsId;

https://stackoverflow.com/a/26661930/8006943

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