目标是获得10部流行电影的列表。

数据库中有一个名为populars的表,其中包含:
 moviecount-电影租借的次数。
 MovieID-电影的ID。

还有一个称为电影的表,其中包含电影的所有数据。该表包含MovieID的字段。
 这些表无关,因此不应在它们之间链接。

我拍了十部最受欢迎的电影

var TopTen = videoLibDB.populars
                 .Take(10)
                 .OrderBy(e => e.movieCount)
                 .Select(e => new { e.MovieID });


可以,但是如何使用“流行”表的10个MovieID(上面代码的TopTen)创建“电影”表中的10部最佳电影的列表?

如果有一个ID,我可以将Popular表中的Moiveid与movies表中的movieid进行比较。

最佳答案

如果您已正确建立关系,则上面@JimWooley的答案是最简单/最好的,如果您没有这种可能性,可以使用此查询。

您的linq查询中存在一些问题,您正在随机拍摄10部电影,并且仅对它们进行排名,排在最不受欢迎的位置。此查询将对其进行修复,并将其与movie表相结合以获取最受欢迎的电影;

var query =
    from movie in videoLibDB.movies
    where
        videoLibDB.populars
        .OrderByDescending(x => x.movieCount)   // Sort all, most popular first
        .Take(10)                               // but only keep the 10 first
        .Select(x => x.MovieID)                 // Take their MovieID
        .Contains(movie.MovieID)                // and get movie data on them
    select movie;

10-08 09:27