MVC无法显示Linq查询结果以进行查看

时间:2014-10-11 13:39:01

标签: c# asp.net-mvc linq asp.net-mvc-5

我试图将linq结果显示在视图中,但我无法做到。我得到的错误是&#34;传递到字典中的模型项的类型是&#39; System.Data.Entity.Infrastructure.DbQuery 1[<>f__AnonymousType2 2 [System.Double,System.String]]&# 39;,但是这个字典需要一个类型为&#39; System.Collections.Generic.IEnumerable&#34;

的模型项

我手动创建了我的视图,右键单击控制器并添加视图,但我有点卡在这里。

public ActionResult leftjoin()
     {
        var q = from b in db.OrderHistories
                 join c in db.BuyerComms on b.ITEMID equals c.ITEMID into sr
                 from x in sr.DefaultIfEmpty()
                 select new { Item = b.ITEMID, buyer = x.Buyer };
                 return View (q.ToList());


     }

和我的观点:

@model IEnumerable<myapp.Models.OrderHistory>

我用linqpad来测试我的linq并且我得到了正确的结果。

1 个答案:

答案 0 :(得分:3)

您的查询返回匿名类型,如下所示:

select new { Item = b.ITEMID, buyer = x.Buyer };

您需要选择OrderHistory类型。你没有提供这门课程,所以我猜它会是这样的:

select new OrderHistory { Item = b.ITEMID, buyer = x.Buyer };