Чистый способ получить связанные объекты на основе выбора - PullRequest
0 голосов
/ 29 декабря 2010

Я использую C # и EF 4. У меня есть хранилище Actor.Сущность Актер имеет много-много отношений с Кино.Поэтому в ActorReposity я хотел бы иметь пример метода GetActors, чья зарплата превышает 100, а также в результаты, которые я хотел бы включить в фильмы, в которых этот актер снимался в фильме, в котором режиссер Доу (режиссер является собственностью фильма.) сигнатура метода, который у меня есть в репозитории, - IQueryable GetActors ().В этом случае я просто упрощаю сигнатуру. После того, как я заставлю это работать, я могу рефакторинг для передачи параметров.

1 Ответ

0 голосов
/ 29 декабря 2010
   public class ActorRepository       
   {
       public List<Actor> GetActors(int minimumSalary, string directorName)
       {
          return _ctx.Actors
                     .Include("Movies")
                     .Where(x => x.Salary > minimumSalary)
                     .Select(x => new 
                             {
                                Actor = x,
                                Movies = x.Movies.Where(y => y.DirectorName == directorName)
                             })
                     .ToList()
                     .Select(x => new Actor
                     {
                        // copy scalar properties from anon to Actor, e.g:
                        ActorName = x.ActorName,
                        // then set the Movies  navigational property to the filtered type
                        Movies = x.Movies
                     }).ToList()

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