对linq语句的SQL查询

时间:2015-02-18 13:31:11

标签: c# sql linq

我需要在我的C#代码中使用SQL查询作为LINQ语句。

select 
    item,
    MAX(aph.date) as MaxDate 
from
    Table2.dbo.price aph 
where 
    item in (57269, 57270, 57278, 57279, 57280, 57281)
group by 
    item

有什么想法吗?

我尝试过使用包含数字的列表。然后,如果它包含选择新项目权利。

我让它工作但唯一的问题是我只从硬编码列表中获得第一个值。

我想出了什么:

  var q = new List<decimal>() {57269, 57270, 57278, 57279, 57280, 57281};
        var msdB = new Entities();

        var query = from x in msdB.table1
            where q.Contains(x.q)
            select new Entitie
            {
                Name = x.q,
                MaxDate = x.date
            };

        var q = new List<Entitie> {query.MaxBy(x => x.MaxDate)};


        return q;

我希望列表中的所有项目数都显示出来。现在只有第一个显示。 (57269)。

这得到输出:

57269,2015-02-18

我希望它是包含日期的所有数字。

1 个答案:

答案 0 :(得分:2)

您的SQL查询分组item,您的LINQ查询需要执行相同的操作

var query = from x in msdB.table1
        where q.Contains(x.q)
        group x by x.q into g
        select new Entitie
        {
            Name = g.Key,
            MaxDate = g.Max(v => v.date)
        };

How to: Group Query Results (C# Programming Guide)