实体框架6 - 的GroupBy对导航性能
问题描述:
我与实体框架6工作(EF 6),并具有以下型号:实体框架6 - 的GroupBy对导航性能
public class Engine {
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Car> Cars { get; set; }
}
public class Car {
public int Id { get; set; }
public string Name { get; set; }
public virtual Engine Engine { get; set; }
public virtual Purchase Purchase { get; set; }
}
public class Purchase {
public int Id { get; set; }
public DateTime Created { get; set; }
public virtual ICollection<Car> Cars { get; set; }
}
-
Engine <-> Car
(1对多的关系) -
Purchase <-> Car
(1对多的关系)
怎么可能确定哪些发动机购买的是什么?我需要一个有序的列表(降序)引擎以及它们被购买的频率。
我在导航属性上存在一些问题,以及如何对它们进行适当的分组/聚合。
感谢
答
试试这个:
return
(from car
in this.Context.Cars
where car.Purchase != null
group car by car.Engine into g
select new { EngineName = g.Key.Name, CountSold = g.Count()})
.OrderByDescending(x => x.CountSold)
.ToList();
另外,请看看here。