/// <summary> /// 从dataTable 内获取行记录转化为QueryGroup /// </summary> /// <param name = "dataTable">DataTable</param> /// <param name = "dr">行记录</param> /// <returns><see cref = "QueryGroupConditionCollections" /></returns> protected static QueryGroupConditionCollections GetKeyColumnToQueryGroup(DataTable dataTable, DataRow dr) { var queryGroup = new QueryGroupConditionCollections(); var fields = new FieldConditionCollections(); foreach (var dataCol in dataTable.PrimaryKey) { if (dr.RowState == DataRowState.Deleted) { fields.Add(dataCol.ColumnName, OperatorType.Equal, dr[dataCol.ColumnName, DataRowVersion.Original]); } else { if (dr[dataCol.ColumnName].GetType() == typeof(string)) { if (!string.IsNullOrEmpty(dr[dataCol.ColumnName, DataRowVersion.Original].ToString())) fields.Add(dataCol.ColumnName, OperatorType.Equal, dr[dataCol.ColumnName, DataRowVersion.Original]); else if (!string.IsNullOrEmpty(dr[dataCol.ColumnName, DataRowVersion.Current].ToString())) fields.Add(dataCol.ColumnName, OperatorType.Equal, dr[dataCol.ColumnName, DataRowVersion.Current]); else if (!string.IsNullOrEmpty(dr[dataCol.ColumnName, DataRowVersion.Default].ToString())) fields.Add(dataCol.ColumnName, OperatorType.Equal, dr[dataCol.ColumnName, DataRowVersion.Default]); } else { if (dr[dataCol.ColumnName, DataRowVersion.Original] != null) fields.Add(dataCol.ColumnName, OperatorType.Equal, dr[dataCol.ColumnName, DataRowVersion.Original]); else if (dr[dataCol.ColumnName, DataRowVersion.Current] != null) fields.Add(dataCol.ColumnName, OperatorType.Equal, dr[dataCol.ColumnName, DataRowVersion.Current]); else if (dr[dataCol.ColumnName, DataRowVersion.Default] != null) fields.Add(dataCol.ColumnName, OperatorType.Equal, dr[dataCol.ColumnName, DataRowVersion.Default]); } } } queryGroup.Add(fields); return queryGroup; }
/// <summary> /// 构造 /// </summary> /// <param name = "fieldConditions">字段结构集合<see cref = "FieldConditionCollections" /></param> public QueryGroupCondition(FieldConditionCollections fieldConditions) : this(fieldConditions, WhereUnionType.And) { }
/// <summary> /// 构造 /// </summary> /// <param name = "fieldConditions">字段结构集合<see cref = "FieldConditionCollections" /></param> /// <param name = "nextUnionType">下个查询组的条件连接</param> public QueryGroupCondition(FieldConditionCollections fieldConditions, WhereUnionType @nextUnionType) { FieldConditions = fieldConditions; NextUnionType = @nextUnionType; }
/// <summary> /// 构造 /// </summary> public QueryGroupCondition() { FieldConditions = new FieldConditionCollections(); }