Create a Lambda Expression With 3 conditions
Convert Contains To Expression Tree
在我剛纔的問題我碰到這樣的查詢,我想寫Expression Tree
版本如下:
List<byte?> lst = new List<byte?>{1,2};
var param = Expression.Parameter(typeof(T), "o");
var body = Expression.AndAlso(
Expression.Equal(
Expression.PropertyOrField(param, "Age"),
Expression.Constant(20)
),
Expression.Call(Expression.PropertyOrField(param, "Status"),
"Contains",
Type.EmptyTypes,
Expression.Constant(lst)));
var lambda = Expression.Lambda<Func<T, bool>>(body, param);
return lambda;
,我得到的錯誤:
"No method 'Contains' exists on type 'System.Nullable`1[System.Byte]'."
請幫我找到問題所在。
感謝