1

我有两张桌子。汽车和经销商。每辆车都有一个与之关联的dealerID。每个经销商都有一个状态属性。我需要编写一个查询,告诉我数据库中每个州有多少辆汽车。我还没有使用 group by 但我认为这就是它的用途。这是我在意识到我需要帮助之前得到的。

        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);

目标是列出每个州的列表视图,其中每个州的汽车总数作为最终结果。

4

1 回答 1

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()
    }
);
于 2013-10-20T14:50:05.970 回答