我在MVC应用程序中有以下lambda表达式。
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;
但是出现了这个错误
Cannot implicitly convert type 'object' to 'System.Collections.Generic.IEnumerable<Movie>'. An explicit conversion exists (are you missing a cast?)
任何帮助都会得到满足。
答案 0 :(得分:0)
我建议您创建一个描述您的域实体(电影)的类,如
public class MyMovie{
public int movieID { get; set; }
public string MovieTitle { get; set; }
}
并将 linq 查询修改为
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;
我假设电影是您的域实体,使用视图模型传递给视图。
您可能会发现this有用