我在网格上进行分层数据绑定,我需要让数据库服务器对我的对象执行排序。我可以轻松地对父集合进行排序,但我似乎无法弄清楚如何对所有子集合进行排序。我有一个模型,它的子集合嵌套了 3 层,所有这些集合都需要排序。
这是我要完成的示例模型:
public class Year
{
public int Id { get; set; }
public string Name { get; set; }
public List<Make> Makes { get; set; }
}
public class Make
{
public int Id { get; set; }
public string Name { get; set; }
public List<Model> Models { get; set; }
}
public class Model
{
public int Id { get; set; }
public string Name { get; set; }
public List<Color> Colors { get; set; }
}
public class Color
{
public int Id { get; set; }
public string Name { get; set; }
}
我正在尝试加载“年份”对象列表。这有一个 Makes 集合,其中有一个 Models 集合,该集合有一个 Colors 集合。我需要根据它们的 name 属性对所有这些对象进行排序。
我试过这样做:
List<Year> years = db.Years.OrderBy("it.Name")
.Include("Makes").OrderBy("it.Name")
.Include("Makes.Models").OrderBy("it.Name")
.Include("Makes.Models.Colors").OrderBy("it.Name")
.ToList();
但它。” 只是从中选择的表的别名......在本例中为“年”。有什么方法可以为子表创建别名,以便我可以在单个查询中对它们进行排序?