private WhereBuilder Append(Expression property, QueryOperatorType op, object value, string type) { if (property != null && value != null) { if (!__sql.IsEmpty_()) { __sql.Append(type); } __sql.Append("("); __sql.Append(__db.GetColumnName(property)); __sql.Append(this.GetOperator(op)); __sql.AppendFormat("@{0}", this.Params.Count); __sql.Append(")"); switch (op) { case QueryOperatorType.Contains: value = "%" + value.ToString().Trim('%') + "%"; break; case QueryOperatorType.StartsWith: value = value.ToString().Trim('%') + "%"; break; case QueryOperatorType.EndsWith: value = "%" + value.ToString().Trim('%'); break; } this.Params.Add(value); } return(this); }
/// <summary> /// 获取查询操作符 /// </summary> /// <param name="op">操作符类型</param> /// <returns>查询操作符</returns> /// <exception cref="System.NotSupportedException">指定操作符未实现</exception> protected virtual string GetOperator(QueryOperatorType op) { switch (op) { case QueryOperatorType.Equal: return(" = "); case QueryOperatorType.NotEqual: return(" <> "); case QueryOperatorType.GreaterThan: return(" > "); case QueryOperatorType.LessThan: return(" < "); case QueryOperatorType.GreaterThanOrEqual: return(" >= "); case QueryOperatorType.LessThanOrEqual: return(" <= "); case QueryOperatorType.Contains: case QueryOperatorType.StartsWith: case QueryOperatorType.EndsWith: return(" LIKE "); default: throw new NotSupportedException("不支持 “{0}” 操作符".F(op)); } }
public static string ConvertToSqlOperator(this QueryOperatorType oOperator) { switch (oOperator) { case QueryOperatorType.Equals: return("="); case QueryOperatorType.NotEquals: return("<>"); case QueryOperatorType.GreaterThan: return(">"); case QueryOperatorType.GreaterOrEquals: return(">="); case QueryOperatorType.LessThan: return("<"); case QueryOperatorType.LessOrEquals: return("<="); case QueryOperatorType.Like: return("LIKE"); case QueryOperatorType.NotLike: return("NOT LIKE"); default: throw new ArgumentOutOfRangeException("Operator"); } }
private WhereBuilder Append(Expression property, QueryOperatorType op, object value, string type) { if(property != null && value != null) { if(!__sql.IsEmpty) __sql.Append(type); __sql.Append("("); __sql.Append(__db.GetColumnName(property)); __sql.Append(this.GetOperator(op)); __sql.AppendFormat("@{0}", this.Params.Count); __sql.Append(")"); switch(op) { case QueryOperatorType.Contains: value = "%" + value.ToString().Trim('%') + "%"; break; case QueryOperatorType.StartsWith: value = value.ToString().Trim('%') + "%"; break; case QueryOperatorType.EndsWith: value = "%" + value.ToString().Trim('%'); break; } this.Params.Add(value); } return this; }
/// <summary> /// 获取查询操作符 /// </summary> /// <param name="op">操作符类型</param> /// <returns>查询操作符</returns> /// <exception cref="System.NotSupportedException">指定操作符未实现</exception> protected virtual string GetOperator(QueryOperatorType op) { switch (op) { case QueryOperatorType.Equal: return(" = "); case QueryOperatorType.NotEqual: return(" <> "); case QueryOperatorType.GreaterThan: return(" > "); case QueryOperatorType.LessThan: return(" < "); case QueryOperatorType.GreaterThanOrEqual: return(" >= "); case QueryOperatorType.LessThanOrEqual: return(" <= "); case QueryOperatorType.Contains: case QueryOperatorType.StartsWith: case QueryOperatorType.EndsWith: return(" LIKE "); default: throw new NotSupportedException(string.Format("QueryOperatorType:{0} is not supportd", op.ToString())); } }
/// <summary> /// 查询条件 /// </summary> /// <param name="property">字段栏表达式</param> /// <param name="op">比较运算符</param> /// <param name="value">值</param> /// <returns>更新构建器</returns> public SetBuilder <T> WhereOr(Expression property, QueryOperatorType op, object value) { if (__where == null) { __where = new WhereBuilder(__db, this.Params, false); } __where.AppendOr(property, op, value); return(this); }
public static ParmInfo AddParameter(string parmName, object parmValue, QueryOperatorType parmQueryOperator, LogicalOperatorType parmLogicalOperator, DbType parmDbType, ParameterDirection parmParameterDirection = ParameterDirection.Input) { return(new ParmInfo { Name = parmName, DbType = parmDbType, ParameterDirection = parmParameterDirection, DataValue = parmValue, LogicalOperator = parmLogicalOperator, QueryOperator = QueryOperatorType.Equals }); }
/// <summary> /// 获取查询操作符 /// </summary> /// <param name="expType">表达式树节点类型</param> /// <returns>查询操作符</returns> /// <exception cref="System.NotSupportedException">指定操作符未实现</exception> protected string GetOperator(QueryOperatorType expType, bool valueIsNull) { if (valueIsNull) { switch (expType) { case QueryOperatorType.Equal: return(" IS "); case QueryOperatorType.NotEqual: return(" IS NOT "); } } return(base.GetOperator(expType)); }
protected override string GetOperator(QueryOperatorType op, bool valueIsNull) { if (valueIsNull) { switch (op) { case QueryOperatorType.Equal: return(" IS "); case QueryOperatorType.NotEqual: return(" IS NOT "); default: break; } } return(base.GetOperator(op)); }
/// <summary> /// 查询条件 /// </summary> /// <param name="property">字段栏表达式</param> /// <param name="op">比较运算符</param> /// <param name="value">值</param> /// <returns>更新构建器</returns> public SetBuilder <T> WhereOr(Expression <Func <T, object> > property, QueryOperatorType op, object value) { return(this.WhereOr((Expression)property, op, value)); }
/// <summary>添加 WHERE OR 子句</summary> /// <param name="property">字段栏表达式</param> /// <param name="op">比较运算符</param> /// <param name="value">值</param> /// <returns>WHERE 构建器</returns> internal JoinBuilder AppendOr(Expression property, QueryOperatorType op, object value) { return(this.Append(property, op, value, " OR ")); }
/// <summary>添加 WHERE 子句</summary> /// <param name="property">字段栏表达式</param> /// <param name="op">比较运算符</param> /// <param name="value">值</param> /// <returns>WHERE 构建器</returns> internal WhereBuilder Append(Expression property, QueryOperatorType op, object value) { return(this.Append(property, op, value, " AND ")); }
/// <summary>添加 WHERE OR 子句</summary> /// <param name="property">字段栏表达式</param> /// <param name="op">比较运算符</param> /// <param name="value">值</param> /// <returns>WHERE 构建器</returns> internal WhereBuilder AppendOr(Expression property, QueryOperatorType op, object value) { return this.Append(property, op, value, " OR "); }