Exemple #1
0
        public string AsSqlString()
        {
            var toInsert = InsertAbleAttributes.Select(attr => attr.DataBaseColumn)
                           .Aggregate("", (acc, next) => acc == "" ? next : acc + ", " + next);

            var insertPositions = InsertAbleAttributes.Aggregate("", (acc, next) => acc == "" ? $"@{next.DataBaseColumn}?" : acc + ", " + $"@{next.DataBaseColumn}?");

            var insertPlaceHolder = InsertedObjects.Select((s, i) => (i, s)).Aggregate("",
                                                                                       (acc, next) => acc == "" ? $"({insertPositions.Replace("?", ""+next.i)})" : acc + $", ({insertPositions.Replace("?", ""+next.i)})");
            var returnValues = ReturnAttributes
                               .Select(attr => attr.DataBaseColumn)
                               .Aggregate("", (acc, next) => acc == "" ? next : acc + ", " + next);

            return($"INSERT INTO {Entity.TableName} ({toInsert}) " +
                   $"VALUES {insertPlaceHolder} " +
                   $"RETURNING {returnValues}");
        }
Exemple #2
0
        public string AsSqlString()
        {
            var toInsert = InsertAbleAttributes.Select(attr => attr.DataBaseColumn)
                           .Aggregate("", (acc, next) => acc == "" ? next : acc + ", " + next);

            var insertPositions = InsertAbleAttributes.Aggregate("", (acc, next) => acc == "" ? $"@{next.DataBaseColumn}?" : acc + ", " + $"@{next.DataBaseColumn}?");

            var insertPlaceHolder = _toInsert.Select((s, i) => (i, s)).Aggregate("",
                                                                                 (acc, next) => acc == "" ? $"({insertPositions.Replace("?", ""+next.i)})" : acc + $", ({insertPositions.Replace("?", ""+next.i)})");

            var autoIncReturn = AutoIncAttributes
                                .Select(attr => attr.DataBaseColumn)
                                .Aggregate("", (acc, next) => acc == "" ? next : acc + ", " + next);

            return($"INSERT INTO {Entity.TableName} ({toInsert}) " +
                   $"VALUES {insertPlaceHolder} " +
                   (string.IsNullOrWhiteSpace(autoIncReturn) ? "" : $"Returning {autoIncReturn}"));
        }