private void BuildUpdateSql() { var str = string.Empty; var table = EntityConfigurationManager.GetTable(_context.ElementType); var name = string.Empty; var column = table.Columns.FirstOrDefault(x => x.Value.IsKey) .Value; if (column != null) { name = column.PropertyInfo.Name; } this.tableName = table.Name; var tableName = GetTableName(table); if (_context.Conditions.Any()) { str = BuildWhere(_context.Conditions); } var values = new List <string>(); var str4 = string.Empty; foreach (var str6 in _context.UpdateResult.Keys) { if (str6 != name) { str4 = ParserUtils.GenerateAlias(str6); var item = @"[{str6}] = @{str4}"; _result.Parameters.Add(str4, _context.UpdateResult[str6]); values.Add(item); } } var format = "UPDATE {0} SET {1} {2}"; format = string.Format(format, tableName, string.Join(",", values), str); _result.CommandText = format; }
protected string StartBuildCondition(Token token) { switch (token.Type) { case TokenType.Column: { var str = BuildSql(token.Column); if (TypeHelper.GetUnderlyingType(token.Column.DataType) == ReflectorConsts.BoolType) { str = str + " = 1"; } return(str); } case TokenType.Object: if (token.Object != null) { if (token.IsBool()) { if (!token.GetBool()) { return("1=2"); } return(null); } var key = ParserUtils.GenerateAlias("param"); _result.Parameters.Add(key, token.Object); return("@" + key); } return(null); case TokenType.Condition: return(BuildCondition(token.Condition)); } throw new Exception(); }