public override DbExpression Visit(DbUpdateExpression exp) { this._sqlBuilder.Append("UPDATE "); this.AppendTable(exp.Table); this._sqlBuilder.Append(" SET "); bool first = true; foreach (var item in exp.UpdateColumns) { if (first) { first = false; } else { this._sqlBuilder.Append(","); } this.QuoteName(item.Key.Name); this._sqlBuilder.Append("="); DbExpression valExp = DbExpressionExtension.StripInvalidConvert(item.Value); AmendDbInfo(item.Key, valExp); DbValueExpressionTransformer.Transform(valExp).Accept(this); } this.BuildWhereState(exp.Condition); return(exp); }
public override DbExpression Visit(DbInsertExpression exp) { string separator = ""; this._sqlBuilder.Append("INSERT INTO "); this.AppendTable(exp.Table); this._sqlBuilder.Append("("); separator = ""; foreach (var item in exp.InsertColumns) { this._sqlBuilder.Append(separator); this.QuoteName(item.Key.Name); separator = ","; } this._sqlBuilder.Append(")"); this._sqlBuilder.Append(" VALUES("); separator = ""; foreach (var item in exp.InsertColumns) { this._sqlBuilder.Append(separator); DbExpression valExp = DbExpressionExtension.StripInvalidConvert(item.Value); AmendDbInfo(item.Key, valExp); DbValueExpressionTransformer.Transform(valExp).Accept(this); separator = ","; } this._sqlBuilder.Append(")"); if (exp.Returns.Count > 0) { this._sqlBuilder.Append(" returning "); separator = ""; foreach (DbColumn returnColumn in exp.Returns) { this._sqlBuilder.Append(separator); this.QuoteName(returnColumn.Name); separator = ","; } } return(exp); }
internal void AppendColumnSegment(DbColumnSegment seg) { DbValueExpressionTransformer.Transform(seg.Body).Accept(this); this._sqlBuilder.Append(" AS "); this.QuoteName(seg.Alias); }