public virtual WhereBuilder SubQuery(Action <WhereBuilder> subQuery, bool and = true) { // create query builder for same type. var qb = new WhereBuilder(Query); qb.NullChecking(IsNullCheckingEnabled); // callback. subQuery(qb); // create a query part. var part = new WhereBuilderCondition(); part.And = and; part.Conditions = qb.Filters; Filters.Add(part); //return self. return(this); }
protected virtual Expression BuildConditionExpression(ParameterExpression parameter, WhereBuilderCondition filter) { var ret = QueryableHelpers.CreateConditionExpression( parameter.Type, filter.Path, filter.ConditionOperator, filter.Value, filter.ConvertStrategy, filter.CollectionHandling, parameter: parameter, nullChecking: IsNullCheckingEnabled, stringComparision: filter.StringComparisation, negate: filter.Negate ); return(ret); }