1
  • Table1 CAR (CARID, CarModelID ,CARuniqueinfo1, CARUniqueinfo2): すべての車が倉庫に入れられたことを示します。

  • Table2 CarModel (CarModelID ,Modelinfo1 ,Modelinfo2 )

  • Table3 販売 (SaleID、CarID、clientID、EmpID)

を返すLinqクエリは何ですか:

ModelID=101のみの販売台数

DataClassesDataContext db = new DataClassesDataContext(); 
4

6 に答える 6

1

簡単な方法:

var result =
    db.Sale
        .GroupBy(item => item.CarId)
        .Select(item => new { item.Key, item.Count() });

良い方法:

var result =
    from sale in db.Sale

    join car in db.CAR
    on car.CARID equals sale.CarID

    join carModel in db.CarModel
    on carModel.CarModelID equals car.CarModelID

    select new 
    { 
        Model = carModel,
        SoldCars = db.Sale.Count(item => item.CarID == car.CARID)
    };
于 2012-11-07T13:49:03.267 に答える
0
var counts = Model.GroupBy(m => m.CarModelID)
                  .Select(grp => ModelId = grp.Key, Count = grp.Count())
于 2012-11-07T13:50:20.710 に答える
0

次のナビゲーション プロパティがあると仮定しますSale(CarID)

int all = db.Models
            .Where(m => m.Cars.SelectMany(c => c.Sales).Any())
            .Select(m => new {m.ModelID, m.Cars.Count}).ToArray();
于 2012-11-07T13:44:13.523 に答える
0

これ:

Dictionary<int, int> carsSold = new Dictionary<int, int>();
foreach (Car in Cars) {
 carrsold.Add(x => x.Id, Sales.Where(y => y.CarId == x.Id).Count());
}

車の ID を販売量にマップする辞書が表示されます。

carsSold[1]id が 1 の車の販売額を返します。

于 2012-11-07T13:52:45.380 に答える
0
private int GetCarsSoldCount(int modelId)
{
  return db.Sale.Count(x => x.CarID == modelId);
}
于 2012-11-07T13:58:55.170 に答える
0
        var r = from car in CarTable
                from sale in SalesTable
                where sale.CarID == car.CarID
                group sale by car.CarModelID into g
                select new { Model = g.Key, Count = g.Count() };
于 2012-11-07T13:58:59.327 に答える