GetByExpression(Expression<Func<TEntity, bool>> predicate)
By allowing the service/consumer to write the query. Aren't we moving away the queries to the service layer? Now the same query will be repeated every time when will try to fetch the data in different places. Can you please clarify this for me?