我需要在我的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
我希望它是包含日期的所有数字。
答案 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)
};