Если вашему клиенту требуется эта функциональность (клиент всегда побеждает), вы можете сделать это, внеся небольшие изменения в логи фильтра c, как это.
(!waiterId.HasValue || x.OrderDetails.Any(y => y.WaiterId == waiterId && y.DataStatus ==(int)eDataStatus.Active)) &&
(
(dateFrom.HasValue && dateTo.HasValue && x.Date >= dateFrom && (x.Date) <= (dateTo) )
||
((dateFrom.HasValue && (x.Date) = (dateFrom)) || (dateTo.HasValue && (x.Date) = (dateTo)) )
) &&
(!floorId.HasValue || x.Table.FloorId == floorId )&&
также, рассмотрите комментарий @steve, если время существует в столбце базы данных вам нужно будет ввести DateTime в дату как для поля фильтра, так и для столбца базы данных
. Для справки вы можете удалить время, используя System.Data.Entity.DbFunctions.TruncateTime()