private string GenerateSetExpressions(ParameterFactory parameterFactory) { var expressions = new List <string>(); foreach (var setExpression in setExpressions) { var existingIndex = expressions.FindIndex(str => str.StartsWith(setExpression.GetColumnName())); if (existingIndex >= 0) { expressions.RemoveAt(existingIndex); } var columnName = setExpression.GetColumnName(); if (setExpression.IsComputedField()) { throw new ComputedFieldExplicitlySetInUpdateException("Cannot update field with IsComputedAttribute: " + columnName); } expressions.Add(columnName + " = " + parameterFactory.Create(setExpression.Value)); } return(string.Join(", ", expressions)); }
public SqlQuery ToQuery(IEnumerable <TableType> rows) { var parameterFactory = new ParameterFactory(); var query = ""; var rowList = rows.ToList(); foreach (var row in rowList) { var tableName = tableInformation.GetSchemaAndTableName(); var columns = tableInformation.GetColumnNames(excludeIdentityColumns: true, excludeComputedFields: true, excludeIgnoredFields: true); var values = tableInformation.GetColumnValues(row, excludeIdentityColumns: true, excludeComputedFields: true, excludeIgnoredFields: true); var identityColumn = tableInformation.GetIdentityColumn(); query += "INSERT INTO " + tableName + " (" + string.Join(", ", columns) + ") SELECT " + string.Join(", ", values.Select(parameterFactory.Create)) + "; "; if (identityColumn != null && rowList.Count == 1) { query += "SELECT SCOPE_IDENTITY();"; } } return(new SqlQuery(query, parameterFactory.GetParameters())); }
internal WhereExpressionVisitor(ParameterFactory parameterFactory) { this.parameterFactory = parameterFactory; stringBuilder = new StringBuilder(); operatorStack = new Stack <ExpressionType>(); }