Oh, je trouve simplement que l'erreur est causée par une autre partie du code. Case fermée.Utilisation de Linq pour sélectionner la valeur maximale dans un groupe
J'ai 2 tables
1- userinfo
id uid name
1 11 Billy
2 22 Paul
3 33 Joshua
2- Score
id uid score
1 11 30
2 22 40
3 11 50
4 11 60
5 33 20
6 33 70
7 33 80
J'ai une classe appelée ScoreUser
public class ScoreUser{
public long uid{get; set;}
public string name{get;set;}
public int score{get;set;}
}
Je veux utiliser l inq pour interroger les deux tables ci-dessus, obtenir le score maximum de chaque utilisateur et le mapper dans l'objet ScoreUser. J'utilise le code suivant:
from s in Scores
join i in UserInfos
on s.uid equals i.uid
group uscore by new { s.uid, i.name} into g
let maxScore = g.Max(p => p.score)
select new ScoreUser
{
uid = g.Key.uid,
name = g.Key.name,
score = maxScore
}
Cependant, ce code ne ne fonctionne pas. Il produit 7 objets au lieu de 3. Que dois-je faire?
ce qui est de retour? Avez-vous une erreur? – Theresa
Ne devriez-vous pas changer les tables Scores et UserInfos? "de i dans UserInfos rejoindre s dans Scores ..." Fondamentalement, en ce moment votre sélection principale est de 7 enregistrements de long. –