LINQ 查询以获取过去 30 天的记录

cra*_*020 1 c# linq asp.net asp.net-web-api

我有一个 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;
                }
            }
        }
Run Code Online (Sandbox Code Playgroud)

不能正常工作:

//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;
                }
            }
        }
Run Code Online (Sandbox Code Playgroud)

Bli*_*ndy 7

我有一个 LINQ 查询来查找过去 7 天的记录,效果很好

不,您有一个查询返回超过 7 天前燃烧的卡路里(即 8、9、10 等)。您构建查询的方式,正确的方法是w.Date >= DateTime.Now.AddDays(-n)获取最后n几天。