2011-09-02 7 views
-2

J'ai un objet Entity Framework qui représente un appel téléphonique.groupe linq & requête somme

Comment puis-je regrouper les numéros composés par la durée et projet dans {Number = xxx, DurationSum = yyy}

Je suis un débutant LINQ et ne peut pas sembler pour obtenir ce droit.

+0

S'il vous plaît montrer votre code jusqu'à présent ainsi que les entités utilisées. En outre, vous devriez être capable de résoudre cela vous-même avec la réponse à votre dernière question ... –

+0

Salut Trevor, pouvez-vous nous donner plus d'informations s'il vous plaît? À quoi ressemble le schéma de votre objet d'appel téléphonique? –

Répondre

2

Je pense que vous voulez quelque chose comme:

var query = from call in db.Calls 
      group call by call.Number into g 
      select new { Number = g.Key, DurationSum = g.Sum(c => c.Duration) }; 
+0

Merci, j'étais trop compliqué – Trevor

0

Supposons que vous avez une classe comme ce

class DialedNumber { 
    public string Number { get; set; } 
    public int Duration { get; set; } 
} 

Et vous avez une collection nommée dialedNumbers. Vous pouvez utiliser une requête comme celle-ci

var groupResult = from dialNumber in dialNumbers 
        group dialNumber by dialNumber.Number 
        into dialNumberGroup 
        select new { 
           Number = dialNumberGroup.Key, 
           DurationSum = dialNumberGroup.Sum(d => d.Duration) 
          }; 

Je ne l'ai pas encore testé. J'espère que cela répondra à votre question.