有人可以帮助我将SQL查询转换为LINQ表达式吗?

时间:2011-06-11 14:10:16

标签: linq linq-to-sql

有人可以帮我将以下SQL查询转换为LINQ表达式吗?

select student.StudentID,
       student.FirstName + ' ' + student.MiddleInitial + ' ' + student.LastName, 
       student.OpenDate,     
       acct.Balance    
from Student student
inner join 
(Select StudentID, Sum(Amount) as Balance 
from Account 
Group by StudentID) as acct on student.StudentID = acct.StudentID

以下LINQ表达式有效!非常感谢Phil !!!

var results = (from s in Students     
          join a in Accounts on s.StudentID equals a.StudentID     
          group a by new                  
             {s.StudentID, s.FirstName, s.MiddleInitial, s.LastName, s.OpenDate}             
             into z     
             select  new     
             {   StudentID = z.Key.StudentID,         
                 FirstName = z.Key.FirstName, 
                 MiddleInitial = z.Key.MiddleInitial, 
                 LastName = z.Key.LastName,         
                 OpenDate = z.Key.OpenDate,         
                 Balance = z.Sum(a=> a.Amount)       
             }
             ); 

谢谢!

1 个答案:

答案 0 :(得分:2)

试一试?

var stu = 
    from s in db.Students
    join a in db.Account on s.StudentID equals a.StudentID
    group a by new 
                {s.StudentID, s.FirstName, s.MiddleInitial, s.LastName, s.OpenDate} 
            into z
    select new 
    {   StudentID = z.Key.StudentID,
        FullName = string.Format("{0} {1} {2}",z.Key.FirstName, z.Key.MiddleInitial, z.Key.LastName),
        OpenDate = z.Key.OpenDate,
        Balance = z.Sum(a=>a.Amount)
    };