1
내가 람다 식 구축하고자 만든 : 나는 PredicateBuilder를 사용결합 된 람다 동적
Expression<Func<MyObject, bool>> predicate = PredicateBuilder.False<MyObject>();
var param = Expression.Parameter(typeof(MyObject), "f");
if (myOperator == OperateurEnum.EG)
{
var body = Expression.Equal(
Expression.PropertyOrField(param, myProperty),
Expression.Constant(myFilterValue)
);
var lambda = Expression.Lambda<Func<MyObject, bool>>(body, param);
predicate = predicate.Or(lambda);
}
else if (myOperator == OperateurEnum.CT)
{
var body = Expression.Call(
Expression.PropertyOrField(param, myProperty),
"StartsWith",
null,
Expression.Constant(myFilterValue)
);
var lambda = Expression.Lambda<Func<MyObject, bool>>(body, param);
predicate = predicate.Or(lambda);
}
else if()
{
...
}
var myEx = Expression.Lambda<Func<MyObject, bool>>(predicate.Body, param);
Func<MyObject, bool> lambdaDelegate = myEx.Compile();
을,하지만 난이 오류가있어 : 유형의
변수 'F' 'ProactisMvc.Web.ProactisWsServiceReference.Offre를' 범위 '에서 참조되었지만 정의되지 않았습니다.
무엇이 잘못 되었습니까? 다른 해결책이 있습니까?
의미가 있습니다. 감사! – twisted