Enables the efficient, dynamic composition of query predicates linq expressions supporting the logical operators: AND, OR, NOT.
It can be used with any kind of entity that need to be queried by a linq expression.