0
 AllMovieInfo = from movieInfo in AllMovieInfo
                           from countryMovie in movieInfo.SeenItWantToSeenIt
                           where countryMovie.Status==1
                           select movieInfo;

            var seenitorderby = db.SeenItWantToSeeIt.Where(m => m.Status == 1).GroupBy(m => m.MovieID).Select(g => new  {MovieID =g.Key,count=g.Count()}).OrderBy(o=>o.count);
            List<int> seenItList=seenitorderby.Select(s=>s.MovieID).ToList();
            AllMovieInfo = (from a in AllMovieInfo
                       from s in seenItList
                       where seenItList.Contains(a.MovieID)
                       select a).Distinct();

seeitorderby 给出了所有看过最多的电影的 id。所以我想加入AllMovieInfo,它是从其他参数过滤的电影信息。此查询根据“AllMovieInfo.MovieID”对结果进行排序,这很明显,但我必须根据“seenitorderby”的 id 对“结果”进行排序,例如:看到它 orderby 可能需要 movieID 2、25、7、14 ,25 那么我需要 AllMovieInfo 按照与 seeitorderby 相同的顺序。如何根据“seenitorderby”订购“结果”?

4

1 回答 1

1

不可以用seeitlist作为主列表加入movieinfo吗?我相信(尽管我没有尝试过)它们会按照主要列表的顺序出现。

from s in seenItList
join a in AllMovieInfo on s equals a.MovieId
select a

如果您真的想要,您可能可以将所有 linq 查询简化为一个,这可能会让下一个阅读代码的人更清楚这一点。

于 2013-07-04T12:44:12.747 回答