Ich bin auf genau dasselbe Problem gestoßen und habe fast zwei Tage damit verloren, es herauszufinden. Es scheint ein Fehler in den EntityFramework-Zuordnungen für MySql zu sein.
Die Lösung besteht darin, DateTime.UtcNow zu verschieben Berechnung außerhalb des Bereichs Lambda und stecken Sie den tatsächlichen Wert ein.
var utcNow = DateTime.UtcNow;
query = query.Where(p => p.Published);
query = query.Where(p => !p.StartDate.HasValue || p.StartDate <= utcNow);
query = query.Where(p => !p.EndDate.HasValue || p.EndDate >= utcNow);