Код: Выделить всё
public static IQueryable WhereBetween(
this IQueryable query,
TValue? min,
TValue? max,
Expression selector)
where TValue : struct, IComparable
{
if (min.HasValue)
{
query = query.Where(Expression.Lambda(
Expression.GreaterThanOrEqual(
selector.Body,
Expression.Constant(min.Value)
),
selector.Parameters
));
}
if (max.HasValue)
{
query = query.Where(Expression.Lambda(
Expression.LessThanOrEqual(
selector.Body,
Expression.Constant(max.Value)
),
selector.Parameters
));
}
return query;
}
< /code>
Я использую его в качестве фильтра с минимальным значением и максимальным значением, и это возвращает как> = и o.OrderTotal)
.WhereBetween(startDate, endDate, o => o.OrderDate)
.ToList();
}
select ...
from Orders o
where o.OrderTotal >= 10
and o.OrderTotal = '2025-01-01'
and o.OrderDate
Проанализируется как буквальные значения, не параметризованные. Мне нужно беспокоиться о атаках инъекций SQL? Или он только что отображается в журналах в виде буквальных значений, но оно отправляется в виде сбежавших буквальных значений?
Подробнее здесь: https://stackoverflow.com/questions/797 ... o-i-need-t