/// <summary> /// Adds a unary where expression to the query. /// </summary> /// <typeparam name="TRecord">The record type of the query builder</typeparam> /// <param name="queryBuilder">The query builder</param> /// <param name="fieldName">The name of one of the columns in the query. The where condition will be evaluated against the value of this column.</param> /// <param name="operand">The SQL operator to be used in the where clause</param> /// <param name="value">The value to compare against the column values. It will be added to the query as a parameter.</param> /// <returns>The query builder that can be used to further modify the query, or execute the query</returns> public static IQueryBuilder <TRecord> Where <TRecord>(this IQueryBuilder <TRecord> queryBuilder, string fieldName, UnarySqlOperand operand, object value) where TRecord : class { return(queryBuilder.WhereParameterised(fieldName, operand, new Parameter(fieldName)) .ParameterValue(value)); }
public IUnaryParameterQueryBuilder <TRecord> WhereParameterised(string fieldName, UnarySqlOperand operand, Parameter parameter) { var uniqueParameter = new UniqueParameter(uniqueParameterNameGenerator, parameter); selectBuilder.AddWhere(new UnaryWhereParameter(fieldName, operand, uniqueParameter)); return(new UnaryParameterQueryBuilder <TRecord>(Parameter(uniqueParameter), uniqueParameter)); }
static IQueryBuilder <TRecord> AddUnaryWhereClauseFromExpression <TRecord>(IQueryBuilder <TRecord> queryBuilder, UnarySqlOperand operand, BinaryExpression binaryExpression) where TRecord : class { var property = GetProperty(binaryExpression.Left); var value = GetValueFromExpression(binaryExpression.Right, property.PropertyType); var fieldName = property.Name; return(queryBuilder.Where(fieldName, operand, value)); }
public UnaryWhereParameter(string fieldName, UnarySqlOperand operand, Parameter parameter) { this.parameter = parameter; FieldName = fieldName; Operand = operand; }
public IUnaryParameterQueryBuilder <TRecord> WhereParameterised(string fieldName, UnarySqlOperand operand, Parameter parameter) { return(Builder.WhereParameterised(fieldName, operand, parameter)); }
public UnaryWhereClause(IWhereFieldReference whereFieldReference, UnarySqlOperand operand, string parameterName) { this.whereFieldReference = whereFieldReference; this.operand = operand; this.parameterName = parameterName; }
public IUnaryParameterDeleteQueryBuilder <TRecord> WhereParameterised(string fieldName, UnarySqlOperand operand, Parameter parameter) { var uniqueParameter = new UniqueParameter(uniqueParameterNameGenerator, parameter); return(new UnaryParameterDeleteQueryBuilder <TRecord>( AddWhereClause(new UnaryWhereClause(new WhereFieldReference(fieldName), operand, uniqueParameter.ParameterName)), uniqueParameter)); }
static IQueryBuilder <TRecord> AddUnaryWhereClauseFromExpression <TRecord>(IQueryBuilder <TRecord> queryBuilder, UnarySqlOperand operand, BinaryExpression binaryExpression) where TRecord : class { var property = GetProperty(binaryExpression.Left); var value = GetValueFromExpression(binaryExpression.Right, property.PropertyType); var fieldName = property.Name; if (value == null && new[] { UnarySqlOperand.Equal, UnarySqlOperand.NotEqual }.Contains(operand)) { return(operand == UnarySqlOperand.Equal ? queryBuilder.WhereNull(fieldName) : queryBuilder.WhereNotNull(fieldName)); } return(queryBuilder.Where(fieldName, operand, value)); }