Я пытался скопировать БД, которую вы упомянули: -
- Художники
- Фильмы
- Работа
и ядобавить один класс сущности thumbItem следующим образом;чтобы выбрать элементы для: -
internal class ThumbItem
{
public string ArtistName { set; get; }
public string MovieName { set; get; }
}
и я выполнил следующую функцию, чтобы получить запрошенный вами результат: -
MoviesEntities context = new MoviesEntities();
var Thumbs = from artist in context.Artists
join job in context.Jobs on artist.ID equals job.ArtistID
join movie in context.Movies on job.MovieID equals movie.ID
select new ThumbItem()
{
ArtistName = artist.Name,
MovieName = movie.Name
};
dataGridView1.DataSource = Thumbs;
он работал очень быстро и ничего не занимал,я думаю, что ваша проблема заключалась в том, что вы разделили сопоставление и создание элементов управления на другие этапы, отличные от выполнения оператора соединения с помощью select в entity;какое действие заняло много времени.
РЕДАКТИРОВАТЬ: -
Новый вопрос из комментария: - нужно ли количество фильмов на исполнителя по одному и тому же запросу?
просто добавьте этот кодпосле того, как перед тем, как он получит результат с обратной связью DB: -
var ListByArtist = Thumbs.ToList().GroupBy(l => l.ArtistName).Select(lg => new
{
Artist = lg.Key,
NumberOfMovies = lg.Count()
});