LINQ-запрос для получения записей за последние 30 дней - PullRequest
1 голос
/ 14 апреля 2020

У меня есть запрос 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;
                }
            }
        }

1 Ответ

5 голосов
/ 14 апреля 2020

У меня есть запрос LINQ для поиска записей за последние 7 дней, который работает нормально

Нет, у вас есть запрос, который возвращает сожженные калории более 7 дней go (ie 8, 9, 10 и др. c). То, как вы структурировали свой запрос, будет правильным w.Date >= DateTime.Now.AddDays(-n), чтобы получить последние n дней.

...