I have this predciate, I would like build it with linqkit because the predicate can change depending of options.
.Where(p => p.FirstName == "John" && p.LastName == "Doe" && ((p.Age > 30 || p.Status >= 10)))
;
I tried :
var predicate = PredicateBuilder.New<Person>();
var orPredicate = PredicateBuilder.New<Person>();
orPredicate.Or(p => p.Age > 30);
orPredicate.Or(p => p.Status >= 10);
Predicate.And(p => p.FirstName == "John");
Predicate.And(p => p.LastName == "Doe");
predicate = predicate.Or(orPredicate);
myQueryable = myQueryable.Where(predicate);
When I do this the result is like a "Or" between each(4) conditions. Am I missed something?
Thanks,
Looking at the docs, I think your snippet can be fixed like so:
var predicate = PredicateBuilder.New<Person>();
var orPredicate = PredicateBuilder.New<Person>();
orPredicate = orPredicate.Start(p => p.Age > 30);
orPredicate = orPredicate.Or(p => p.Status >= 10);
predicate = predicate.Start(p => p.FirstName == "John");
predicate = predicate.And(p => p.LastName == "Doe");
predicate = predicate.And(orPredicate);
myQueryable = myQueryable.Where(predicate);
Mind that I have Zero experience with LinqKit and derived this just from referenced docs.