Получение данных за последние 7 дней из названий дней, таких как воскресенье, понедельник, вторник и т. Д. В linq asp.net mvc - PullRequest
0 голосов
/ 29 октября 2019

Я хочу получить данные по дням последней недели, таким как последнее воскресенье, последний понедельник и т. Д. За 7 дней. Я написал этот запрос, но я возвращаю ноль.

var dateCriteria = DateTime.Now.Date.AddDays(-7);
var one = _context.Sale.Where(m => m.Date >= dateCriteria && m.Date.DayOfWeek.ToString() == 
"Sunday");

Ответы [ 2 ]

1 голос
/ 29 октября 2019

DayOfWeek - это enum. Так что просто используйте его без преобразования:

var dateCriteria = DateTime.Now.Date.AddDays(-7);
var one = _context.Sale.Where(m => m.Date >= dateCriteria && m.Date.DayOfWeek == 
DayOfWeek.Sunday);
0 голосов
/ 29 октября 2019

Я не уверен, правильно ли я понял ваш вопрос, но вот что я хотел бы сделать, чтобы получить продажи в прошлое воскресенье.

 var one = _context.Sale.Where(m => m.Date == GetLast(DayOfWeek.Sunday));

 private DateTime GetLast(DayOfWeek dayOfWeek) {
     var currentDate = DateTime.Now.Date;
     var currentDayOfWeek = (int)currentDate.DayOfWeek;

     if (currentDayOfWeek <= (int)dayOfWeek) {
         currentDayOfWeek = currentDayOfWeek + 7;
     }
     int daysToExtract = currentDayOfWeek - (int)dayOfWeek;

     return currentDate.AddDays(-daysToExtract);
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...