所以我工作的一個自制論壇(ASP.net MVC4)和我目前顯示所有的論壇,在控制器我做這個簡單的查詢:獲取最新的每個論壇的帖子
return View(db.Forums.ToList());
但現在我想能夠也包括頂級職位。 (一個論壇實體有一個Post的集合,Post有一個Date,我想以此命令,然後做一個採取(1))。
我嘗試類似:
return View(db.Forums.Include(z=>z.Posts.OrderBy(x=>x.Date).Take(1)).ToList());
然後我得到的錯誤:
The Include path expression must refer to a navigation property defined on the type. Use dotted paths for reference navigation properties and the Select operator for collection navigation properties. Parameter name: path
PS:這裏是當前視圖
@model IEnumerable<MyProject.Data.Forum>
@{
ViewBag.Title = "Forum Index";
}
<h2>Forums</h2>
<table class="Forum">
<tbody>
<tr>Main forums</tr>
@foreach (var item in Model)
{
<tr class="ForumItem">
<td><a href="[email protected]">X</a></td>
<td><p><a href="[email protected]">@item.Name</a></p><span>@item.Description</span></td>
<td>@item.PostCount</td>
@foreach(var post in item.Posts)
{
<td>@post.Title</td>
}
</tr>
}
</tbody>
</table>
任何人都知道一個解決方案?
不起作用它不知道的第一篇文章,然後我必須做出對類FirstPost屬性,使其工作? – Maximc
是的,這將返回一個新的匿名類,其中包含一個Forum屬性和一個Firstpost屬性。這將需要更改您使用返回的數據的方式。 – cjk
(我將其更改爲firstordefeault,因爲並非所有論壇都已發佈帖子)現在我收到錯誤消息:傳入字典的模型項目類型爲'System.Collections.Generic.List'1 [<> f__AnonymousType5'2 [Smartp1ck。 Data.Forum,Smartp1ck.Data.Post]],但是這個字典需要一個'System.Collections.Generic.IEnumerable'1 [Smartp1ck.Data.Forum]'類型的模型項。 – Maximc