Beispiel #1
0
        public Statement BuildInsertReturnId(GeneratorParams arg)
        {
            var statement = BuildInsert(arg);

            if (_provider.Type == DbProviderManager.POSTGRESQL_DBPROVIDER.Type)
            {
                statement.SqlTags.Add(new SqlText($" ; Returning {arg.PkCol.Name};", _provider.ParameterPrefix));
            }
            else
            {
                statement.SqlTags.Add(new SqlText($"{_provider.SelectAutoIncrement}", _provider.ParameterPrefix));
            }

            return(statement);
        }
Beispiel #2
0
        public IDictionary <string, Statement> Generate(SqlMap map, Type entityType)
        {
            var statementList = new Dictionary <string, Statement>();

            var gParams = new GeneratorParams(map, entityType);

            if (_generatorFuncList != null && _generatorFuncList.Count > 0)
            {
                foreach (var item in _generatorFuncList)
                {
                    statementList.Add($"{map.Scope}.{item.Key}", item.Value(gParams));
                }
            }

            return(statementList);
        }
Beispiel #3
0
        public Statement BuildUpdate(GeneratorParams gParams)
        {
            var dbPrefix = _provider.ParameterPrefix;

            var updateTags = new List <ITag>();

            foreach (var col in gParams.ColumnMaps.Values)
            {
                if (col.IsPrimaryKey)
                {
                    continue;
                }
                var p = new IsProperty
                {
                    Prepend   = ",",
                    Property  = col.Property.Name,
                    ChildTags = new List <ITag>
                    {
                        new SqlText($"{WrapColumnEqParameter(_provider, col)}", dbPrefix)
                    }
                };
                updateTags.Add(p);
            }

            var sqlTags = new List <ITag>
            {
                new SqlText($"Update {gParams.TableName}", dbPrefix),
                new Set()
                {
                    ChildTags = updateTags
                },
                new SqlText($" Where {WrapColumnEqParameter(_provider, gParams.PkCol)}", dbPrefix),
            };

            return(BuildStatement(CUDStatementName.UPDATE, sqlTags, gParams.Map));
        }
Beispiel #4
0
        public Statement BuildDeleteAll(GeneratorParams gParams)
        {
            var sql = $"Delete From {gParams.TableName}";

            return(BuildStatement(CUDStatementName.DELETE_ALL, sql, gParams.Map));
        }