Дерево выражений C#, свойство преобразования строки в int/longC#

Место общения программистов C#
Anonymous
Дерево выражений C#, свойство преобразования строки в int/long

Сообщение Anonymous »

У меня есть выражение IQueryable:

Код: Выделить всё

... Where(x => Convert.ToInt64(x.string_param) > Convert.ToInt64(string_const)) ...
Как построить это дерево выражений? Вид:

Код: Выделить всё

var left = ...?
var right = Expression.Constant(Convert.ToInt64(filter.From), typeof(Int64));
greaterExpression = Expression.GreaterThanOrEqual(left, right);
Эта строка кода:

Код: Выделить всё

var left = Expression.Convert(property, typeof(Int64))
не работает, выдает исключение:

Между типами «System.String» и «System.Int64» не определен оператор приведения

Это сигнатура метода:

Код: Выделить всё

public static Expression GetFilterRange(FilterRange filter)
{
var paramter = Expression.Parameter(typeof(TQuery));
var property = Expression.PropertyOrField(paramter, filter.PropertyName);
...
return greaterExpression;
}
PS: строка является типом, допускающим значение NULL, в строке запроса?

Подробнее здесь: https://stackoverflow.com/questions/798 ... o-int-long

Вернуться в «C#»