public RowType(OrderColumns columns) : base() { InternalInitialize(); for (int index = 0; index < columns.Count; index++) { if (!_columns.ContainsName(columns[index].Column.Name)) { _columns.Add(columns[index].Column.Column.Copy()); } } }
public RowType(OrderColumns columns, string prefix) : base() { InternalInitialize(); for (int index = 0; index < columns.Count; index++) { if (!_columns.ContainsName(Schema.Object.Qualify(columns[index].Column.Name, prefix))) { _columns.Add(columns[index].Column.Column.Copy(prefix)); } } }
protected string GetQuery(NameValueCollection queryString) { string result = "SELECT " + (VisibleColumns.Any() ? string.Join(", ", VisibleColumns) : "*") + " FROM "; if (!string.IsNullOrEmpty(CatalogName)) { result += CatalogName + "."; } result += Name + " WHERE 1 = 1"; foreach (string name in queryString) { if (!FilterableColumns.Any() || FilterableColumns.Contains(name)) { if (Criteria.TryParse(queryString[name], out Criteria criteria)) { result += " AND " + criteria.toSqlWhereClause(name); } else { result += " AND " + name; if (queryString[name].Contains("%")) { result += " LIKE '" + queryString[name] + "'"; } else { result += "=" + queryString[name].ToSqlValue(); } } } } if (OrderColumns.Any()) { result += " ORDER BY " + string.Join(", ", OrderColumns.Select(c => c.Key + (c.Value == OrderType.Ascending ? " ASC" : " DESC"))); } return(result); }