[英]convert an sql query to Entity Framework
以下sql查詢正在運行並獲取當前月份的每日訪問量
select date(date) as DayDate, count(*) As visitsaday from Visits group by DayDate having DayDate between date('now','start of month') and date('now','start of month','+1 month','-1 day')
幾天來,我試圖弄清楚如何使用實體框架來運行它。 到目前為止,我最好的方法是:
ObjectQuery<Visit> visits = fitent.VisitMenge;
var uQuery =
from visit in visits
group visit by visit.Date into g
select new
{
DayOfMonth = g.Key,
VisitsPerDay = g.Count()
};
這里的問題是,它將按日期+時間而不僅僅按日期進行分組。 結果如下:
[0] = { DayOfMonth = {06.07.2009 12:38:59}, VisitsPerDay = 1 }
但它應該看起來像
[0] = { DayOfMonth = {06.07.2009}, VisitsPerDay = 12 }
你能這樣做嗎:
ObjectQuery<Visit> visits = fitent.VisitMenge;
var uQuery = from visit in visits
group visit by visit.Date.Day into g
select new
{
DayOfMonth = g.Key,
VisitsPerDay = g.Count()
};
只需添加一個.Day
到你的“visit.Date” - 這有用嗎?
渣
你需要做兩件事:
-
var uQuery = from visit in visits
where visit.Date.Month == DateTime.Now.Month
&& visit.Date.Year == DateTime.Now.Year
group visit by visit.Date into g
select new
{
DayOfMonth = g.Key.Date,
VisitsPerDay = g.Count()
};
我現在使用以下:
ObjectQuery<Visit> visits = fitent.VisitMenge;
var uQuery =
from visit in visits
where visit.Date.Value.Month == DateTime.Now.Month
&& visit.Date.Value.Year == DateTime.Now.Year
group visit by visit.Date.Value.Day into g
select new
{
DayOfMonth = g.Key,
VisitsPerDay = g.Count()
};
建議的解決方案一起工作正常!
我不得不改變一點點
而不是visit.Date.Day我不得不:
visit.Date.Value.Day
我現在的結果如下:
[0] = { DayOfMonth = 6, VisitsPerDay = 3 }
謝謝 !
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.