У меня есть поле datetime
с нулевым значением, и мне нужно преобразовать поле даты string
в тип даты и времени, допускающий значение NULL (используя Expression
).... Я сделал это, используя приведенное ниже.
Expression.Constant(Convert.ChangeType(value, Nullable.GetUnderlyingType(memberAccess.Type)));.
MemberAccess (упомянутый выше) имеет тип выражения члена. (Из LinqExtensions.cs) Теперь в коде я использую метод Expression.Equal.
Expression.Equal(memberAccess, filter);
Здесь это не работает, так как тип доступа к члену имеет значение NULL, но filter.type не имеет значения NULL...
Даже если я попытаюсь преобразовать тип доступа к члену в nullable, используя
ConstantExpression test = Expression.Constant(Nullable.GetUnderlyingType(memberAccess.Type)),
Тип — Runtime, а не DateTime.
Как использовать Expression.Equal
для сравнения поля, допускающего значение NULL, и поля, не допускающего значение NULL? Есть ли способ преобразовать тип строки в поле даты и времени, допускающее значение NULL? Любой из них решит мою проблему.
Expression
? - person jacob aloysious   schedule 17.05.2013