我想为我的仪表板中的某个仪表板编写一个LINQ查询,它根据某些条件检索数据。我想根据表格中可用的不同状态显示记录计数。LINQ虚拟(预定义)列分组
以下是我试图转换成Linq的SQL查询。
select count(id) cnt, 'Available' label from table where date = sysdate
以上查询返回结果在DB IDE下面。这是我想要linq的结果
cnt label
0 Available
我试着用下面的linq查询,但它返回0计数,因此结果没有被检索。
var data = (from a in context
where a.date = System.DateTime.Now
group a in a.id into g
select new {
cnt = g.Count(),
label = 'Available'
}).ToList();
如何在linq中达到上述结果。您的帮助将不胜感激。
感谢
-------------编辑---------------- 更新LINQ查询
var data = (from a in context.TableA
where a.id = uniqueID
group a in a.id into g
select new {
cnt = g.Count(),
label = 'Available'
}).Concat(from a in context.TableB
where a.id = uniqueID
group a in a.id into g
select new {
cnt = g.Count(),
label = 'WIP'
}).ToList();
您的SQL查询中没有where子句,但是在您的Linq中执行,并且我怀疑您的表日期列与当前的DateTime.Now(我可以保证它不是)相同。从你的linq中删除'where'。 – Dispersia
您想计算具有特定ID的数据中元素的数量,还是要统计数据中唯一ID的数量? –
@Dispersia - 我已经更新了SQL查询。请参阅更新的一个。尽管如此,它仍然在DB IDE中返回1行,但不会与linq一起返回。仅供参考,我需要这个条件来过滤结果。谢谢 – user968441