我有两张桌子。汽车和经销商。每辆车都有一个与之相关的经销商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);
目标是列出每个州的列表视图列表,其中每个州的总车数为最终结果。
答案 0 :(得分:3)
让我通过扩展方法写一下来帮助我们:
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()
}
);