簡體   English   中英

LINQ查詢獲取最近30天的記錄

[英]LINQ query to get records for the last 30 days

我有一個 LINQ 查詢來查找過去 7 天的記錄,效果很好。 盡管如果我嘗試使用相同的查詢,但在過去 30 天內返回 0。 誰能告訴我這是為什么? 我如何編輯查詢以在過去 30 天內工作?

工作正常:

//calories burned working out over the last 7 days
        public int CaloriesBurnedLast7Days
        {
            get
            {
                using (var db = new FitnessTrackerWebAPIContext())
                {
                    int calsLast7Days = 0;
                    calsLast7Days = db.Workouts.Where(w => w.Date <= DateTime.Now.AddDays(-7) && w.UserID == ID).Sum(w => w.CaloriesBurned);
                    return calsLast7Days;
                }
            }
        }

不能正常工作:

//calories burned working out over the last 30 days
        public int CaloriesBurnedLast30Days
        {
            get
            {
                using (var db = new FitnessTrackerWebAPIContext())
                {
                    int calsLast30Days = 0;
                    calsLast30Days = db.Workouts.Where(w => w.Date <= DateTime.Now.AddDays(-30) && w.UserID == ID).Sum(w => w.CaloriesBurned);
                    return calsLast30Days;
                }
            }
        }

我有一個 LINQ 查詢來查找過去 7 天的記錄,效果很好

不,您有一個查詢返回超過 7 天前(即 8、9、10 等)燃燒的卡路里。 您構建查詢的方式,正確的方法是w.Date >= DateTime.Now.AddDays(-n)以獲取最后n天。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM