我试图将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并且我得到了正确的结果。
答案 0 :(得分:3)
您的查询返回匿名类型,如下所示:
select new { Item = b.ITEMID, buyer = x.Buyer };
您需要选择OrderHistory
类型。你没有提供这门课程,所以我猜它会是这样的:
select new OrderHistory { Item = b.ITEMID, buyer = x.Buyer };