目标是获得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;