Как показать общий округ, используя Datetime.Фильтр сегодня ASP.Net MVC

#c# #asp.net-mvc #asp.net-core

#c# #asp.net-mvc #asp.net-core

Вопрос:

Я создаю инструмент для продажи билетов с использованием .Net MVC. Я застрял в месте, где я хочу показать общее количество билетов, созданных на сегодня.

  1. Тип данных класса чата
 public DateTime? ChatCreateDateTime { get; set; }
  
  1. В контроллере
 public ActionResult Index()
        {
            using (Db db = new Db())
            {
                //Chat dto = new Chat();

                //string date = DateTime.Now.ToShortDateString();

                ViewBag.todayTicket = db.Chats.Where(x => x.ChatCreateDateTime == DateTime.Today).Count();

                return View(db.Chats.ToArray().ToList());
            }
                
        }
  
  1. В поле зрения
 <p>@ViewBag.todayTicket</p>
  

Отображаемые данные равны 0, что неверно, в инструмент добавлено 6 билетов. Созданная дата также наследует время, когда была нажата кнопка..

Пример создан Дата-время = 18.10.2020 02:30 вечера и дата-время.Сегодня = 18.10/2020 Любая помощь очень ценится.

Комментарии:

1. Вы пробовали ChatCreateDateTime.Date?

Ответ №1:

измените выражение where таким образом:

 ViewBag.todayTicket = db.Chats
    .Where(x => System.Data.Entity.DbFunctions.TruncateTime(x.ChatCreateDateTime)
        == DateTime.Today)
    .Count();
  

Комментарии:

1. Не уверен, что EntityFunctions.TruncateTime они доступны в ядре EF. Я бы сказал, что ваш предыдущий ответ был просто прекрасным, за исключением того, что лично я бы использовал .Value вместо cassting .

2. ViewBag.todayTicket = db.Chats. Где(x => System.Data.Entity. Dbфункции. TruncateTime(x.ChatCreateDateTime) == DateTime . Сегодня). Count();

3. Спасибо Саиду и Гуру за ваши предложения. Очень помогает. Я также хотел узнать, как заставить время создания даты вычесть время окончания даты, но как я могу привести это в действие. Есть предложения?

Ответ №2:

 ViewBag.todayTicket = db.Chats
    .Where(x => System.Data.Entity.DbFunctions.TruncateTime(x.ChatCreateDateTime)
          == DateTime.Today)
    .Count();