Проблема, как вы сказали, - строка разрешается до "i => i.TargetDateTime > 10/25/2019 11:00:00 AM"
, что является недопустимым кодом C #. Даже если вы добавили кавычки, вы не можете напрямую сравнить DateTime
с string
В конечном счете, вам либо нужно сравнивать объекты одного типа. Либо string
до string
, DateTime
до DateTime
, long
до long
и т. Д. Я предпочитаю сохранять их как DateTime
объекты.
Таким образом, вам необходимо построитьDateTime
в правой части выражения.
Один из способов - использовать конструктор DateTime
, например:
queryText = $"i => i.TargetDateTime > new System.DateTime({fooPast.Ticks}, System.DateTimeKind.{fooPast.Kind})";
Другой, возможно, более чистый механизмчерез встроенные двоичные методы сериализации, которые учитывают как Ticks
, так и Kind
в одном значении:
queryText = $"i => i.TargetDateTime > System.DateTime.FromBinary({fooPast.ToBinary()})";