Example #1
0
        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;
        }
Example #2
0
        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();
        }