ASP. Net Ядро: связь "многие-ко-многим" Получить операцию - PullRequest
0 голосов
/ 09 июля 2020

У меня есть 2 объекта, связанных отношениями многие ко многим.

Первый класс:

 public class Movie
 {
     public int Id { get; set; }
     public string Title { get; set; }

     public List<MovieActor> MovieActor { get; set; }
 }

Второй класс:

 public class Actor
 {
     public int Id { get; set; }
     public string Name { get; set; }

     public List<MovieActor> MovieActor { get; set; }
 }

И отношение (многие к many):

public class MovieActor
 {
     public int MovieId { get; set; }
     public Movie Movie { get; set; }

     public int ActorId { get; set; }
     public Actor Actor { get; set; }
 }

Я хочу написать метод IEnumerable<Movie> GetMovies(int actorId), который принимает в качестве параметра идентификатор актера. Я хочу, чтобы метод возвращал список фильмов, в которых играет актер с данным идентификатором. Как я могу это сделать?

Ответы [ 2 ]

1 голос
/ 09 июля 2020

Вам не нужен класс MovieActor

Измените на:

public class Movie
 {
     public int Id { get; set; }
     public string Title { get; set; }

     public List<Actor> Actors { get; set; }
 }

 public class Actor
 {
     public int Id { get; set; }
     public string Name { get; set; }

     public List<Movie> Movies { get; set; }
 }

Затем вы можете выбрать Актера, и у вас будет список фильмов в качестве свойства актера.

0 голосов
/ 09 июля 2020

, чтобы вы могли сделать что-то вроде этого

 public IEnumerable<Movie> GetMovies(int actorId)
 {
     var result = await _context.Actor.Where(x => x.Id == actorId).
                                          Include(x => x.MovieActor).ThenInclude(x => x.Movie).FirstOrDefaultAsync();
        
     var movies = result.MovieActor.select(x => x.Movie).Tolist();
     return movies
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...