我目前正在学习ASP.NET MVC以及LINQ
我已经学过一些教程并且有一个很好的MVC概念。我遇到了一个问题。我试图从我的表中选择一个特定的行并将其发送到视图但我收到错误。
选择的代码是:
Movie Mov = new Movie();
Mov = from movies in _db.Movies
where movies.Title == "Ghostbusters"
select movies;
错误是:
Error 2 Cannot implicitly convert type 'System.Linq.IQueryable<MvcApplication2.Models.Movie>' to 'MvcApplication2.Models.Movie'. An explicit conversion exists (are you missing a cast?) C:\Users\user\Desktop\MvcApplication2\MvcApplication2\Controllers\HomeController.cs 22 25 MvcApplication2
由于
答案 0 :(得分:3)
您的Linq查询是IQueriable。这意味着它不是Movie的对象(或对象),而是用于选择Movie对象的SQL查询。您需要将其转换为对象(或对象)并将其传递给视图。
所以试试这个;
Movie Mov = (from movies in _db.Movies
where movies.Title == "Ghostbusters"
select movies).FirstOrDefault();
return View(Mov);
答案 1 :(得分:0)
您要将查询而非查询结果分配给Mov
。
这样做:
Mov = (from ... select ...).First();
顺便说一下,由于您要使用查询中的值填充Mov,因此无需使用= new Movie()
对其进行初始化。