Имам nullable datetime
поле и трябва да преобразувам string
полето за дата в nullable тип datetime (с помощта на Expression
).... Направих това, използвайки по-долу.
Expression.Constant(Convert.ChangeType(value, Nullable.GetUnderlyingType(memberAccess.Type)));.
MemberAccess (споменат по-горе) е от тип член израз. (От LinqExtensions.cs) Сега в кода използвам метод Expression.Equal.
Expression.Equal(memberAccess, filter);
Тук това се проваля, тъй като типът memberaccess е nullable, но filter.type не е nullable...
Дори ако се опитам да преобразувам типа достъп на член в nullable с помощта
ConstantExpression test = Expression.Constant(Nullable.GetUnderlyingType(memberAccess.Type)),
Типът е Runtime, а не DateTime.
Как да използвам Expression.Equal
за сравняване на nullable и non nullable поле? Има ли някакъв начин да преобразувате типа низ в поле за дата и час с nullable? Всяко едно от тези неща ще разреши проблема ми.
Expression
? - person jacob aloysious   schedule 17.05.2013