internal void SelectColumns(IEnumerable <string> columns) { var tableAlias = GetTableAlias(); var sqlClause = Clauses.FirstOrDefault(); if (sqlClause.Name == "SELECT") { sqlClause.InputText = string.Join(",", columns.Select(c => string.Format("{0}.{1}", tableAlias, c))); } }
internal void ChangeToInsert <T>(string tableName, Expression <Func <T, object> > insertObjectExpression) { Validate(); var sqlSelectClause = Clauses.FirstOrDefault(); string columnsToInsert = string.Join(",", insertObjectExpression.GetObjectProperties()); string insertValueExpression = string.Format("INTO {0} ({1})", tableName, columnsToInsert); Clauses.Insert(0, new SqlClause { Name = "INSERT", InputText = insertValueExpression }); sqlSelectClause.InputText = columnsToInsert; }
public void ChangeToDelete() { Validate(); var sqlClause = Clauses.FirstOrDefault(); var sqlFromClause = Clauses.First(o => o.Name == "FROM"); if (sqlClause != null) { sqlClause.Name = "DELETE"; sqlClause.InputText = sqlFromClause.InputText.Substring(sqlFromClause.InputText.LastIndexOf("AS ") + 3); } }
public void ChangeToUpdate(string updateExpression, string setExpression) { Validate(); var sqlClause = Clauses.FirstOrDefault(); if (sqlClause != null) { sqlClause.Name = "UPDATE"; sqlClause.InputText = updateExpression; Clauses.Insert(1, new SqlClause { Name = "SET", InputText = setExpression }); } }
public override string ToString() { var strSql = new StringBuilder(); var select = Clauses.FirstOrDefault(c => c is SqlSelectClause <T>); var where = Clauses.FirstOrDefault(c => c is SqlWhereClause); var groupBy = Clauses.FirstOrDefault(c => c is SqlGroupByClause); var having = Clauses.FirstOrDefault(c => c is SqlHavingClause); var orderBy = Clauses.FirstOrDefault(c => c is SqlOrderByClause); var offset = Clauses.FirstOrDefault(c => c is SqlRowOffsetClause); var fetch = Clauses.FirstOrDefault(c => c is SqlRowFetchNextClause); if (select != null) { strSql.Append($"{select}"); } if (where != null) { strSql.Append($" {where}"); } if (groupBy != null) { strSql.Append($" {groupBy}"); if (having != null) { strSql.Append($" {having}"); } } if (orderBy == null) { orderBy = new SqlOrderByClause(Expression.Constant(1)); } strSql.Append($" {orderBy}"); if (offset != null) { strSql.Append($" {offset}"); if (fetch != null) { strSql.Append($" {fetch}"); } } return(strSql.ToString()); }
public override string ToString() { var sql = Clauses.FirstOrDefault(c => c is SqlRawClause); return(sql.ToString()); }
private SqlStatement GetStatement() => Clauses.FirstOrDefault() as SqlStatement;