最近才学linq语句,遇到问题百度了好多也没好的解决。只好来问大神些了。
有二个表 分别为A B
A表为用户基本信息表
B表为用户成绩表
需要用一个linq语句查出A表的所有信息,和用户在B表的成绩总合。
------解决思路----------------------
var q = from u in db.Users
join s in db.Scores
on u.Id equals s.UserId into lg
from s in lg.DefaultIfEmpty()
select new {Id=u.Id, Name=u.Name,Score=s==null?0:s.Score};
------解决思路----------------------
from u in db.Users
join s in db.Scores.GroupBy(x => x.UserID).Select(x => new { ID= x.Key, TotalScore = x.Sum(y => y.Score) })
on u.UserID equals s.UserID into lg
from s in lg.DefaultIfEmpty()
select new {Id=u.UserID , Name=u.Name,Score=s==null?0:s.TotalScore };