Как получить все фильмы режиссера и отобразить их на бритвенных страницах? - PullRequest
0 голосов
/ 06 мая 2020

(извините, я даже не могу правильно объяснить свой вопрос.)

Это один из моих первых ASP Net Core проектов . Я хочу, чтобы мое веб-приложение отображало отдельные страницы для каждого режиссера и получало список его фильмов для отображения там. Примерно так:

Скриншот сайта mov ie с именем letterboxd

(плакат не нужен, просто mov ie заголовки в порядке)


Я создал два класса. Один назван Mov ie:

Скриншот Mov ie class

public class Movie
{
    public int MovieId { get; private set; }
    public int DirectorId { get; set; }
    [Required]
    public string Title { get; set; }
    public string Year { get; set; }
}

И еще один класс назван Director :

Снимок экрана класса Director

public class Director
{
    public int DirectorId { get; private set; }
    [Required]
    public string Name { get; set; }
    public string Country { get; set; }
    public string Bio { get; set; }
    public List<Movie> Movies { get; set; }
}

Затем я использовал инструмент формирования шаблонов и позволил Visual Studio создать контекст БД и страницы Razor автоматически:

Снимок экрана

Но, когда я запускаю приложение, я вижу свойство mov ie List даже не включены в бритвенные страницы:

Скриншот списка Директоров

Скриншот страницы Директоров


Итак, моя цель - отобразить отдельную страницу для каждого режиссера, которая включает список фильмов, снятых им / ею, на странице режиссера.

Но я знаю, что это слишком много, чтобы задавать все проблемы сразу вопрос. Просто покажи мне пути. Какие подходы я могу принять? Какие ключевые слова мне следует использовать для поиска ?!

Если вы любезно дадите мне несколько идей, я постараюсь изучить / поискать и опробовать их сам.

1 Ответ

3 голосов
/ 06 мая 2020

Отношения не загружаются автоматически; вы должны выбрать стратегию загрузки: нетерпеливый, явный или ленивый. Безусловно, предпочтительным подходом является активная загрузка, поскольку она позволяет EF выполнить соединение SQL в том же начальном запросе, вместо того, чтобы выполнять дополнительные запросы позже. Для этого вам нужно использовать только Include при выполнении запроса:

var directors = await _context.Directors.Include(x => x.Movies).ToListAsync();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...