我有以下SQL查询,它为我提供了Month,Year和Count。如何在LINQ查询语法中执行等效操作?
SQL
SELECT
MONTH(ExpiryDate) MONTH,
YEAR(ExpiryDate) YEAR,
COUNT(*) COUNT
FROM tblItems
GROUP BY
YEAR(ExpiryDate),
MONTH(ExpiryDate)
提前致谢
[更新工作答案]
var query = from a in db.tblItems
group a by new
{
((DateTime)a.ExpiryDate).Year,
((DateTime)a.ExpiryDate).Month
} into bca
select new
{
MonthField = bca.Key.Month,
YearField = bca.Key.Year,
CountField = bca.Count(),
};
答案 0 :(得分:1)
请试试这个:
var info = from a in tblItems
group a by new
{
a.ExpiryDate.Year,
a.ExpiryDate.Month
} into bca
select new ConsolidatedData()
{
MonthField = bca.Key.ExpiryDate.Month,
YearField = bca.Key.ExpiryDate.Year,
CountField = bca.Count(),
};
您也可以尝试LINQPad在LINQ中发展您的技能,您已经拥有SQL逻辑。祝你有愉快的一天
答案 1 :(得分:0)
我并不完全理解你的要求,但我会在linq中使用这样的分组。
'from item in tblItems
group item by year,month into group select group.firstordefault.month,group.firstordefault.year,group.count'