实体框架6-导航属性上的GroupBy
本文关键字:GroupBy 属性 导航 框架 实体 | 更新日期: 2023-09-27 18:25:57
我正在使用实体框架6(EF 6),并具有以下模型:
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
(一对多关系)Purchase <-> Car
(一对多关系)
如何确定购买最多的发动机?我需要一份发动机的订购清单(降序)以及购买频率。
我在导航属性以及如何适当地对它们进行分组/聚合方面遇到了一些问题。
感谢
试试这个:
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();
另外,请看一下这里。