Ben*_*min 5 linq asp.net asp.net-mvc entity-framework sql-order-by
如何从DbSet中对查询进行排序,并包括应该排序的子项.
例:
我有一个调度订单的模型.
public class Order
{
public virtual int Id { get; set; }
public virtual int? SchedulingOrder { get; set; }
public virtual int? WeekId { get; set; }
public virtual Week Week { get; set; }
}
public class Week
{
public virtual int Id { get; set; }
public virtual DateTime StartDate { get; set; }
public virtual ICollection<Order> Orders { get; set; }
}
...
public DbSet<Week> Weeks { get; set; }
public DbSet<Order> Orders { get; set; }
Run Code Online (Sandbox Code Playgroud)
然后是一个动作方法
public ActionResult ShopSchedule()
{
return View(db.Weeks.OrderBy(w => w.StartDate)
.Include(w => w.Orders.OrderBy(o => o.SchedulingOrder))
.ToList());
}
Run Code Online (Sandbox Code Playgroud)
由于性质的原因,我认为这不起作用Include.我是否必须创建单独的视图模型并映射到它?或者有没有办法在查询中绕过它?人们new { left = right, etc }在查询中说某种语法?
相关问题:
为EditorFor C#Entity Framework 4.1 订购实体框架子项
Lambda Include - 仅选择特定的包含值
你是对的,你不能在 Include 中使用订单,它不应该这样工作。OrderBy但是您可以使用Orders 集合对视图中的结果进行排序。另外,你直接返回一个结果,不是吗return View(db.Weeks...)?