【发布时间】:2016-03-06 11:35:54
【问题描述】:
我正在尝试使用 Linq 从 2 个表中获取数据,其中一个表对第二个表有 FK,但没有必要有数据(表审查可能有每个审查 cmets(很多))我想要得到的是:在单个视图中获取所有评论,如果有任何 cmets 显示与评论 ID 相关的评论 尝试使用 join 在我的视图中出现错误(模型传递错误我尝试了每个表模型)这是我的代码:
public ActionResult ttt()
{
var model = from rev in db.reviews
join com in db.Comments
on rev.ReviewId equals com.ReviewId into JoineRevCom
from com in JoineRevCom.DefaultIfEmpty()
select new
{
rev.ReviewBody,
rev.ReviewHeadLine,
Comments = com != null ? com.CommentBody : null
};
return View(model);
}
@model IEnumerable< SiteMvcPro.Models.Review>
【问题讨论】:
-
您的
select new { ... }正在创建匿名对象的集合(不是Review对象的集合)。您需要创建具有所需属性的视图模型(例如ReviewVM)并使用select new ReviewVM { .... }(并将视图中的模型更改为model IEnumerable<ReviewVM>
标签: c# entity-framework linq-to-sql asp.net-mvc-5