Динамическое создание Expression для типа DateTime
Есть класс Orders:
class Orders
{
public DateTime StartDate { get; set; }
}
Есть также выражение:
...<Orders>(o => o.StartDate < DateTime.Now.Date)
т.е. отбираются заявки, у которых StartDate < текущей даты
Я создаю динамическое выражение, которое заменяет лямбду (o => o.StartDate < DateTime.Now.Date):
Type tType = typeof(T); //typeof(Orders)
ParameterExpression parameterExpression = Expression.Parameter(tType, tType.FullName);
MemberExpression property = Expression.Property(parameterExpression, "StartDate");
ConstantExpression constant = Expression.Constant(DateTime.Now.Date);
Expression expression = Expression.LessThanOrEqual(property, constant);
и так далее
главное, что property здесь указывает на свойство StartDate класса Orders.
Но если лямбду заменить на такую:
...<Orders>(o => o.StartDate.Date < DateTime.Now.Date)
т.е. из даты-времени свойства StartDate берется только составляющая даты.
Как реализовать это при создании динамического выражения?
Тут человек задавал аналогичный вопрос, который, к сожалению, остался без ответа.