にList.Contains変換:に関連する表現ツリー
私はExpression Tree
バージョンを書きたい、このクエリに直面して、私の前の質問の以下では
Create a Lambda Expression With 3 conditions
Convert Contains To Expression Tree
:
:List<byte?> lst = new List<byte?>{1,2};
from a in myTbl
where a.Age = 20 && lst.Contains(a.Status)
select a
私はこのコードを書きます
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]'."
は、問題を見つけるために私を助けてください。それができる
public static bool Contains<TSource>(
this IEnumerable<TSource> source,
TSource value
)
:
おかげ