GreaterThanOrEqual оператор между лямбда и константой - PullRequest
0 голосов
/ 07 февраля 2019

У меня вопрос, как я могу построить лямбду c=> c.docdate >= DateTime.Today методом Expression.GreaterThanOrEqual.

Спасибо

ps:

Цель, которую я делаю, заключается в том, что я думаю, что могу применить такой способ к любому условию запроса, например, int, decimal,.Затем я могу написать любое условие запроса универсальным методом и связать их вместе любым способом.

, например:

У меня есть класс, подобный приведенному ниже:

public class DataRangeT<T> : IRangeValue<T>
    where T : struct
{
    Nullable<T> _high;
    Nullable<T> _low;
    public Nullable<T> High { get { return _high; } set { _high = value; } }
    public Nullable<T> Low { get { return _low; } set { _low = value; } }
}

BeacuseМаксимум и минимум - Nullable, поэтому я должен построить свой запрос, как показано ниже

    public static Expression<Func<T, bool>> RangeCompare<T>(Expression<Func<T, K>> selector, IRangeValue<K> patten)
    {
        Expression<Func<T, bool>> predicate = f=>true;
        if (patten.High.HasValue)
        {
            predicate = predicate.And<T>(/* LowThanOrEqual */);
        }
        if (patten.Low.HasValue)
        {
            predicate = predicate.And<T>(/* GreaterThanOrEqual */);
        }

        return predicate;
    }

Поскольку оператор> = не поддерживается в Nullable, тогда я думаю, что я должен использовать GreaterThanOrEqual.

Методpredicate.And<T>() - это метод справки, который я пишу для динамического объединения запросов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...