2010-10-25 8 views
3

J'essaie d'exécuter une requête où j'obtiens le nom des emplacements et le nombre d'éléments dans cet emplacement. Donc, si j'ai un programme qui contient 3 emplacements, je veux savoir combien de programmes sont à cet endroit .. Je dois utiliser cela avec une expression lambda ou linq pour les entités.Nombre dans l'expression lambda

return Repository.Find(x => x.Location.Name.Count())...clearly missing something here. 

nous allons supposer que j'ai une entité de programme avec ProgramID, ProgramName, LocationName ... besoin de savoir combien de programmes sont en à un endroit

+1

Mec! Vous devez commencer à cliquer sur Réponse acceptée sur vos questions! Cela rend tellement plus facile pour tout le monde, et c'est la façon dont ce site fonctionne. –

Répondre

12

Vous pouvez le faire comme ceci:

return repository.Count(x => x.Location == "SomeLocation"); 
2

Voulez-vous connaître les comptes pour tous les emplacements à la fois?

var locCounts = Repository.GroupBy(prog => prog.Location.Name).ToLookup(g => g.key, g => g.Count()); 
+0

Matt ... merci pour l'aide, cela semble fonctionner. L'application jette cependant une exception et j'ai du mal à résoudre le problème. Quand j'ai changé le type de retour à ILookup <> j'ai parcouru toute mon application et changé toutes les méthodes appropriées pour chercher et appeler ILookup. Mais je ne reçois pas cette erreur - Le serveur n'a pas fourni une réponse significative; Cela peut être dû à une incompatibilité de contrat, à une fermeture de session prématurée ou à une erreur interne du serveur. Je suis sûr que c'est assez difficile pour vous d'avoir une opinion sur le correctif ... mais je voulais le transmettre le long ... – gevjen

+0

qu'étiez-vous les types de retour avant? il ne devrait pas être difficile d'obtenir mon code ci-dessus pour donner le bon type. –

0

si vous repositoryPattern, utilisez ce code

Clients.Where(p => p.DateOfArrival >= DateTime.Now.AddDays(-3) && p.DateOfArrival <= DateTime.Now.AddDays(3)).Select(p => p.ID).Count() 

Repository Pattern

+0

D'où provient DateOfArrival? Pour autant que je vois, il n'y a aucune mention ou exigence d'une telle colonne. J'espère que vous n'avez pas simplement copié-collé votre code. – Codeek

+0

DateOfArrival est ma colonne d'entité (le type est datetime). – Cagdas