O, właśnie stwierdzam, że błąd spowodowany jest przez inną część kodu. Sprawa zamknięta.Używanie Linq do wybrania maksymalnej wartości w grupie
Mam 2 tabele
1- userinfo
id uid name
1 11 Billy
2 22 Paul
3 33 Joshua
2- nik
id uid score
1 11 30
2 22 40
3 11 50
4 11 60
5 33 20
6 33 70
7 33 80
Mam klasy o nazwie ScoreUser
public class ScoreUser{
public long uid{get; set;}
public string name{get;set;}
public int score{get;set;}
}
chcę używać l inq, aby wysłać zapytanie do powyższych dwóch tabel, uzyskać maksymalny wynik każdego użytkownika i zmapować go do obiektu ScoreUser. używam następujący kod:
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
}
Jednak ten kod nie nie działa. Wytwarza 7 obiektów zamiast 3. Co powinienem zrobić?
co jest zwracane? Czy pojawia się błąd? – Theresa
Nie powinieneś przełączać tabel wyników i tablic UserInfos? "od i w UserInfos dołącza s w punktach ..." Zasadniczo, teraz twój główny wybór to 7 rekordów. –