排序嵌套集我有實體模型是這樣的:如何在LINQ的
表> FormResponse>的FormItem> FormItemType
形式可以有多個FormResponses,但每個FormResponse可以有1的FormItem和FormItem中能有1個FormItem類型。
我想要獲得FormItem.ItemOrder字段排序的響應的所有窗體。所以,這個問題是關於訂購。
下面是我的嘗試,實際工作,但我對ToList()評估我得到FormResponses的疑問。這是否意味着FormResponses將針對每個表單進行評估?意思是,查詢會很慢。 有沒有辦法以更有效的方式寫下面的語句?
試圖刪除ToList()評估,在這種情況下,我得到錯誤IOrderedEnumerable<FormResponse>
無法投射到ICollection<FormResponse>
。
var forms = db.Forms
.AsEnumerable()
.Select(p => new Form
{
Name = p.Name,
FormResponses = p.FormResponses.
.OrderBy(i => i.FormItem.ItemOrder)
.ToList(),
OrderNumber = p.OrderNumber
})
.ToList();
感謝
我試着刪除AsEnumerable,但我得到的錯誤,說明實體或複雜類型MyModel.Form不能在LINQ構建以查詢實體 – bobetko 2015-04-02 19:05:45
@bobetko然後構建一個匿名類型在EF查詢中,然後將其複製到內存中的「Form」中。 – Servy 2015-04-02 19:09:25