MVC使用linq选择数据并传递给模型

时间:2013-12-04 13:12:57

标签: asp.net-mvc linq

我目前正在学习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

由于

2 个答案:

答案 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()对其进行初始化。