实体框架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