Относится к: Создание лямбда-выражения с 3 условиями
Точно так же, как в вышеупомянутой теме я написал это Expression
:
var body = Expression.AndAlso(
Expression.Equal(
Expression.PropertyOrField(param, "Year"),
Expression.Constant(year)
),
Expression.AndAlso(
Expression.Equal(
Expression.PropertyOrField(param, "CityCode"),
Expression.Constant(cityCode)
),
Expression.Equal(
Expression.PropertyOrField(param, "Status"),
Expression.Constant(50)
)
)
);
единственное отличие в моей новой таблице Status
это tinyint null
или (byte?)
в C#
. Когда я запускаю код, я получаю эту ошибку:
Бинарный оператор Equal не определен для типов 'System.Nullable`1 [System.Byte]' и 'System.Byte'
поэтому я меняю Expression.Constant(50)
на Expression.Constant((byte?)50)
и снова получаю ту же ошибку. Где моя ошибка?
Спасибо
Обновление 1)
Я пробовал это: Expression.Constant(50, typeof(byte?));
но я получил эту ошибку:
Типы аргументов не совпадают