2010-08-28 6 views
1

Comment cette requête peut être transformée à LINQrequête SQL pour LINQ-to-entités

SELECT materialId, SUM(totalAmount) as quantity FROM Inventory 

Il est la partie de la somme que je ne sais pas comment ...

query = from inv in context.Inventory 
         select new MaterialQuantity() 
         { 
          MaterialId = inv.materialId, 
          Quantity = ?? 
         }; 

EDIT Essayer pour additionner la valeur de totalAmount.

Il est une vue qui est

materialId totalSum and other fields 
1   5 
1   10 
1   20 

Je veux que mon LINQ me retourner MaterialID = 1, = Quantité 35

+0

Qu'essayez-vous de faire? Évidemment, il peut y avoir plusieurs valeurs materialId, mais à moins que vous ne groupiez par quelque chose, il n'y aurait qu'une seule somme. –

Répondre

1

Je vais donner une estimation complète ici ... en supposant votre inventaire comporte plusieurs lignes avec le même MaterialID et que vous voulez résumer dans ces groupes, vous pouvez utiliser:

var query = from inv in content.Inventory 
      group inv.totalAmount by inv.materialId into g 
      select new { MaterialId = g.Key, Quantity = g.Sum() }; 

Si vous n'êtes pas en essayant de grouper cependant, vous devrez clarifier votre question. Des exemples de données et la production attendue aideraient.