Может кто-нибудь помочь мне с этим запросом linq, я хочу, чтобы все игроки возвращались в запросе независимо от того, находятся ли они в таблице рейтингов.Если у них есть оценки, укажите в запросеПроблема с этим запросом состоит в том, что если судья x ввел рейтинг для игрока a, а затем запросить его у судьи y, вы не получите игрока a в результатах.Я думаю, что понимаю почему, но могу понять синтаксис.
var players =
from p in dc.Players
join r in dc.Ratings on p.PlayerId equals r.PlayerId into ps
from r in ps.DefaultIfEmpty()
where r.JudgeId == Convert.ToInt32(JudgeId) || r.JudgeId == null
orderby p.PlayerName
select new
{
PlayerName = p.PlayerName,
PlayerId = p.PlayerId,
Passing = r != null ? r.Passing : 0,
Setting = r != null ? r.Setting : 0,
Serving = r != null ? r.Serving : 0,
Blocking = r != null ? r.Blocking : 0,
Effort = r != null ? r.Effort : 0,
Quickness = r != null ? r.Quickness : 0,
Hitting = r != null ? r.Hitting : 0,
PositionKnowledge = r != null ? r.PositionKnowledge : 0,
Total = r != null ? Convert.ToString(r.Passing + r.Setting + r.Serving + r.Blocking + r.Effort + r.Quickness + r.Hitting + r.PositionKnowledge): "You have not rated this person",
};