如何将SQL查询转换为LINQ?

时间:2011-12-08 04:35:02

标签: .net vb.net linq

我是LINQ的新手。任何人都可以帮我转换下面的SQL查询到LINQ?

SELECT 
   Date,ShiftName,Max(Score) AS Score, 1 AS IsPreferred  
FROM 
   Temp_Nurse_Fill_RequestNumbers 
group by 
   ShiftName,date

4 个答案:

答案 0 :(得分:1)

from t in Temp_Nurse_Fill_RequestNumbers 
group by t.ShiftName, t.date
into g 
select new 
{
   Date = g.date,
   Score = (from tt in g select tt.Score).max
   IsPreferred = 1
};

答案 1 :(得分:1)

嗯,这样的事情怎么样(这是C#,我认为转换是微不足道的)

temps
    .GroupBy(x => new {x.ShiftName, x.Date})
    .Select(g => new TempNurseProjection
        {
            Date = g.Key.Date,
            ShiftName = g.Key.ShiftName,
            MaxScore = g.Max(q => q.Score),
            IsPreferred = true
        });

答案 2 :(得分:1)

为方便起见

tems.
    GroupBy(Function(x) New With { x.ShiftName, x.Date }).
    Select(Function(g) New TempNurseProjection With {
        .Date = g.Key.Date,
        .ShiftName = g.Key.ShiftName,
        .MaxScore = g.Max(Function(q) q.Score),
        .IsPreferred = True
    })

修改

很抱歉没有注意到最终投影不是匿名的,而是命名类型。

答案 3 :(得分:0)

您可以使用名为LINQPad的工具。

  

厌倦了查询过时的SQL?   好吧,你没必要! LINQPad允许您以现代查询语言交互式查询数据库:LINQ。与SQL Management Studio亲吻再见!   ...... LINQPad也是学习LINQ的好方法:它载有本书中的500个例子,一个Nutshell中的C#4.0。没有更好的方式来体验LINQ和函数式编程的酷感。

LINQPad Website

希望这会有所帮助