我相当确定这是可能的,但是我遇到了一些问题。我试图使用linq获得一个只有1级嵌套的简单对象图。以下是结构示例:
public class City
{
public int CityId { get; set; }
public string Name { get; set; }
public List<House> Houses { get; set; }
}
public class House
{
public int HouseId { get; set; }
public int Number { get; set; }
public int CityId { get; set; }
}
所以我要做的就是让所有城市及其所有相关的房屋。我试图按名称排序城市,然后按数字排序他们的嵌套房屋。在查询完成后,我尝试了一个投影,一个foreach进行排序,以及一个缓慢的迭代。这是我目前所拥有的基础知识,但我看不到如何访问嵌套集:
List<City> Cities = db.Cities.Include(c => c.Houses).OrderBy(c => c.Name).ToList();
我如何设法按Houses
对每个城市Number
进行排序(不影响城市所在的顺序)?
答案 0 :(得分:4)
这样的事情会起作用吗?
var Cities =
(from c in db.Cities
orderby c.Name
select new
{
Name = c.Name,
Houses = c.Houses.OrderBy(c => c.Number).ToList()
}
);
答案 1 :(得分:-1)
试试这个
var cities = (from city in db.Cities
orderby city.Name
select new {
City = city,
Houses = city.Houses.OrderBy(c => c.Number)
})
.ToList();