Дерево выражений 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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