0

これが私のコードです:

var context = new InventoryContext();

var res = from i in context.Inventories
          select new FullInventory
          {
              InventoryID = i.InventoryID,
              ItemModelID = i.ItemModelID,
              ModelName = i.ItemModel.ModelName,
              ...
              Quantity = context.Inventories.Select(x => x.ItemModelID).Count()
          };

return res.ToList();

私が持っているコードはうまく機能しますが、結果は次のようになります。

   CATEGORY   | MANUFACTURER | MODEL | QUANTITY
1. Hard drive | Dell         | 250GB | 2
2. Hard drive | Dell         | 250GB | 2

ご覧のとおり、テーブルには 2 つのエントリがあり、これらのエントリはまったく同じなので、グループにまとめたいと思います。それらをグループ化するには、 でグループ化する必要がありますが、それでもすべてのデータをクラスItemModelIDのリストに入れる必要があります。FullInventory

FullInventoryデータをクラスのリストに「選択」しながら、データをグループ化するにはどうすればよいですか?

4

3 に答える 3

1

Lambda 式を使用して完全なリストを取得した後、Group By を試みます。

 var context = new InventoryContext();

 return (from i in context.Inventories
         select new FullInventory
         {
             InventoryID = i.InventoryID,
             ItemModelID = i.ItemModelID,
             ModelName = i.ItemModel.ModelName,
             ...
             Quantity = context.Inventories.Select(x => x.ItemModelID).Count()
         }).GroupBy(g => g.ItemModelID).ToList();
于 2013-09-11T17:17:39.353 に答える
0

あなたは使用することができますDistinct()

return res.Distinct().ToList()
于 2013-09-11T15:52:52.467 に答える