这是使用 LINQ 分组依据的正确方法吗?
本文关键字:方法 LINQ | 更新日期: 2023-09-27 18:36:19
我有两个表。汽车和经销商。每辆车都有一个与之关联的经销商 ID。每个经销商都有一个状态属性。 我需要编写一个查询,告诉我数据库中每个州有多少辆汽车。我还没有使用组,但我认为这就是它的用途。 这是我在意识到我需要帮助之前所得到的。
var query = (from c in _db.Cars
join d in _db.Dealers on c.DealerID equals d.DealerID
where c.Active == true
group c by d.State);
目标是让每个州列出一个列表视图,每个州的汽车总数作为最终结果。
让我通过在扩展方法中编写它来提供帮助:
var query =
_db.Cars
.Join
(
_db.Dealers,
c=>c.DealerID,
d=>d.DealerID,
(car,dealer)=>new {car,dealer}
)
.Where
(
x=>x.car.Active//no reason to check with == true if this is boolean
)
.GroupBy
(
x=>x.dealer.State
)
.Select
(
x=>new
{
State = x.Key,
Cars = x.Count()
}
);