/// <summary> /// 创建新的Sql条件语句集合 /// </summary> /// <param name="concatType">连接类型</param> /// <param name="conditions">查询语句集合</param> /// <returns>Sql条件语句集合</returns> public static SqlConditionList CreateList(SqlWhereConcatType concatType, params ISqlCondition[] conditions) { SqlConditionList list = new SqlConditionList(concatType); if (conditions != null) { for (Int32 i = 0; i < conditions.Length; i++) { list.Add(conditions[i]); } } return(list); }
/// <summary> /// 创建新的Sql条件语句集合 /// </summary> /// <param name="cmd">Sql语句</param> /// <param name="concatType">连接类型</param> /// <param name="conditions">条件语句集合</param> /// <returns>Sql条件语句集合</returns> internal static SqlConditionList InternalCreate(AbstractSqlCommandWithWhere cmd, SqlWhereConcatType concatType, IEnumerable <ISqlCondition> conditions) { SqlConditionList list = new SqlConditionList(cmd, concatType); if (conditions != null) { foreach (ISqlCondition condition in conditions) { list.Add(condition); } } return(list); }
/// <summary> /// 两个Sql条件语句执行或操作 /// </summary> /// <param name="condition1">条件1</param> /// <param name="condition2">条件2</param> /// <returns>条件列表</returns> public static AbstractSqlCondition operator |(AbstractSqlCondition condition1, AbstractSqlCondition condition2) { if (condition1 == null && condition2 == null) { return(null); } else if (condition1 != null && condition2 == null) { return(condition1); } else if (condition1 == null && condition2 != null) { return(condition2); } if (condition1.ConditionType == SqlConditionType.ConditionList) { SqlConditionList list = condition1 as SqlConditionList; if (list.ConcatType == SqlWhereConcatType.Or) { list.Add(condition2); return(list); } } if (condition2.ConditionType == SqlConditionType.ConditionList) { SqlConditionList list = condition2 as SqlConditionList; if (list.ConcatType == SqlWhereConcatType.Or) { list.Insert(0, condition1); return(list); } } return(condition1._baseCommand.ConditionBuilder.Or(condition1, condition2)); }
/// <summary> /// 判断两个Sql条件语句是否相同 /// </summary> /// <param name="obj">待比较的Sql条件语句</param> /// <returns>两个Sql条件语句是否相同</returns> public override Boolean Equals(Object obj) { if (obj == null) { return(false); } SqlConditionList condition = obj as SqlConditionList; if (condition == null) { return(false); } if (this._concatType != condition._concatType) { return(false); } if (this._list.Count != condition._list.Count) { return(false); } for (Int32 i = 0; i < this._list.Count; i++) { if ((this._list[i] != null && condition._list[i] == null) || (this._list[i] == null && condition._list[i] != null)) { return(false); } if (!this._list[i].Equals(condition._list[i])) { return(false); } } return(true); }