LinqKit PredicateBuilder returns all or non rows
The And
extension-method does not modify the original predicate - it returns a new predicate representing the original predicate AND
ed together with the specified predicate.
Effectively, your operations are not changing the predicate referred to by your pre
variable, meaning you end up with either all or none of the records based on whether you initialized the original predicate to true
or false
.
Try:
var pre = PredicateBuilder.True<MyEntity>();
pre = pre.And(m => m.IsActive);
If you are planning toOR
predicates together, remember to start off with a false
initial predicate.
var pre = PredicateBuilder.False<MyEntity>();
pre = pre.Or(m => m.IsActive);