[英]How do I write this SQL query using Linq/Lambda?
到目前為止我只使用lambda編寫簡單查詢(c => c.UserID == uID)
等等,但現在我有了更高級的SQL query
。 我想反對我使用Entity Framework
創建的模型。
問題是我無法弄清楚如何在多列上使用group by,並且還對列ObjectGUID
進行了distinct
count
。 這是SQL Query在SQL Server管理工作室中運行時工作正常。
SELECT YEAR(logdate) as year, MONTH(logdate) as month, COUNT(distinct ObjectGUID) as ammount
FROM table
WHERE ExportTemplate = 'template' AND LogDate >= '2008-01-01 00:00:00:000'
GROUP BY YEAR(logdate), MONTH(logdate)
Order By YEAR(logdate), MONTH(logdate)
將它與linq結合起來是否更好?還是可以通過lambda表達式來完成它? 任何幫助,將不勝感激
你需要為灌漿創建新的匿名類型;
from x in Model
group by new { x.Date.Year, x.Date.Month } into g
order by g.Key.Year, g.Key.Month
select new
{
g.Key.Year,
g.Key.Month,
Count = g.Select(s => s.ObjectGUID).Distinct().Count()
}
像這樣的東西應該做的伎倆(雖然沒有經過測試)。 加入where
的條件應該很容易。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.