2012-03-17 4 views
1

MVCアプリケーションで次のラムダ式を使用しています。selectmanyをgroupbyとMVCビューの組み合わせに渡す方法

var toprating= _db.Movie.SelectMany(m => m.Rating.Select(r=> new 

      { 

      movieID=r.MovieID, 
      MovieTitle= m.Title 
      })).GroupBy(m=>m.movieID).ToList(); 

     ViewBag.TopMovie = toprating; 
     } 

私はこれを私のビューに渡したいと思います。 私は私の見解で

IEnumerable<Movie> TopMovies = ViewBag.TopMovie; 

を以下のように書いてみたが任意のヘルプはにappriciatedされます。このエラー

Cannot implicitly convert type 'object' to 'System.Collections.Generic.IEnumerable<Movie>'. An explicit conversion exists (are you missing a cast?) 

を得ました。

答えて

0

私は

var toprating= _db.Movie.SelectMany(m => m.Rating.Select(r=> new MyMovie 
      { 
       movieID=r.MovieID, 
       MovieTitle= m.Title 
      })).GroupBy(m=>m.movieID).ToList(); 

ViewBag.TopMovie = toprating; 
IEnumerable<MyMovie> TopMovies = ViewBag.TopMovie; 

私は作品であることを前提としているとして、あなたが

public class MyMovie{ 
public int movieID { get; set; } 
public string MovieTitle { get; set; } 
} 

のようなあなたのドメインエンティティ(動画)を示すクラスを作成し、あなたのLINQクエリを変更することをお勧めしますドメインエンティティは、ビューモデルを使用してビューに渡します。

thisが役に立ちます

関連する問題