排序嵌套集我有实体模型是这样的:如何在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