О, я просто обнаружил, что ошибка вызвана другой частью кода. Корпус закрыт.Использование Linq для выбора максимального значения в группе
У меня есть 2 таблицы
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
У меня есть класс с именем ScoreUser
public class ScoreUser{
public long uid{get; set;}
public string name{get;set;}
public int score{get;set;}
}
Я хочу использовать L inq, чтобы запросить приведенные выше две таблицы, получить максимальный балл каждого пользователя и сопоставить его с объектом ScoreUser. Я использую следующий код:
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
}
Однако этот код действительно не работает. Он создает 7 объектов вместо 3. Что мне делать?
что возвращается? Вы получаете сообщение об ошибке? – Theresa
Не следует ли переключаться на таблицы «Оценки» и «UserInfos»? «from i in UserInfos присоединяется к Scores ...» В принципе, сейчас ваш основной выбор - 7 записей. –