首先,我找到了解決我的問題的方法。問題是 - 有沒有更好的方法?Linq - 檢索數據一段時間(7天),即圖的訂單計數
我需要檢索一段時間(7天)的訂單清單列表,例如使用group by。在某些日子裏,沒有訂單,這意味着那些日子將被一羣人淘汰。
這是我需要什麼來實現(使用劍道UI條形圖):
我在2個階段做到了這一點。第一個創建日期枚舉,第二個從數據庫檢索Orders的數量。
備註: db是一個實體框架數據上下文。 DbFunctions.TruncateTime()僅用於比較日期,忽略時間部分)。
var from = DateTime.Now.AddDays(-6);
var to = DateTime.Now;
var days = Enumerable.Range(0, 1 + to.Subtract(from).Days)
.Select(offset => from.AddDays(offset))
.ToArray();
var data = days
.Select(i => new
{
Day = i.ToShortDateString(),
Orders = db.Orders.Count(d => DbFunctions.TruncateTime(o.OrderDate) == i.Date)
});
它可以做得更好嗎?在過去7天內檢索項目的數量/總和?
這不會因爲使用的GroupBy沒有訂單eleminate日期工作。見圖21/08/2015&25/08/2015。 –
@Nikita是的我誤解了這個問題。之後,我嘗試尋找解決方法,並最終得到了更新的答案。 – Hopeless
Enumerable有時間部分,所以目前我可能會得到兩條記錄,一條是2015年8月25日,另一條是2015年8月25日15:50:00。另外,爲什麼我們需要計數「 - 1」? –