Oh, ho appena trovato che l'errore è causato da un'altra parte del codice. Caso chiuso.Uso di Linq per selezionare il valore massimo in un gruppo
Ho 2 tabelle
1- userinfo
id uid name
1 11 Billy
2 22 Paul
3 33 Joshua
2- Nota
id uid score
1 11 30
2 22 40
3 11 50
4 11 60
5 33 20
6 33 70
7 33 80
ho una classe chiamata ScoreUser
public class ScoreUser{
public long uid{get; set;}
public string name{get;set;}
public int score{get;set;}
}
voglio usare l inq per interrogare le due tabelle precedenti, ottenere il punteggio massimo di ciascun utente e mapparlo nell'oggetto ScoreUser. Io uso il seguente codice:
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
}
Tuttavia, questo codice non non funziona. Produce 7 oggetti anziché 3. Cosa devo fare?
ciò che viene restituita? stai ricevendo un errore? – Theresa
Non dovresti cambiare le tabelle Punteggio e UserInfos? "da I in UserInfos si uniscono s in Scores ..." Fondamentalmente, in questo momento la tua selezione principale è lunga 7 record. –