/// <summary>
        ///     This API supports the Entity Framework Core infrastructure and is not intended to be used
        ///     directly from your code. This API may change or be removed in future releases.
        /// </summary>
        protected override void AppendIdentityWhereCondition(StringBuilder commandStringBuilder, ColumnModification columnModification)
        {
            Check.NotNull(commandStringBuilder, nameof(commandStringBuilder));
            Check.NotNull(columnModification, nameof(columnModification));

            SqlGenerationHelper.DelimitIdentifier(commandStringBuilder, columnModification.ColumnName);
            commandStringBuilder.Append(" = ")
                .Append("last_insert_rowid()");
        }
Esempio n. 2
0
 protected abstract void AppendIdentityWhereCondition(
     [NotNull] StringBuilder commandStringBuilder,
     [NotNull] ColumnModification columnModification);
Esempio n. 3
0
 protected override void AppendIdentityWhereCondition(StringBuilder commandStringBuilder, ColumnModification columnModification)
 {
     commandStringBuilder
     .Append(QuoteIdentifier(columnModification.ColumnName))
     .Append(" = ")
     .Append("provider_specific_identity()");
 }
Esempio n. 4
0
        protected override void AppendIdentityWhereCondition(StringBuilder commandStringBuilder, ColumnModification columnModification)
        {
            Check.NotNull(commandStringBuilder, nameof(commandStringBuilder));
            Check.NotNull(columnModification, nameof(columnModification));

            SqlGenerationHelper.DelimitIdentifier(commandStringBuilder, columnModification.ColumnName);
            commandStringBuilder.Append(" = ").Append("scope_identity()");
        }
 protected override void AppendIdentityWhereCondition(StringBuilder commandStringBuilder, ColumnModification columnModification)
 {
     SqlGenerationHelper.DelimitIdentifier(commandStringBuilder, columnModification.ColumnName);
     commandStringBuilder.Append(" = ")
     .Append("LAST_INSERT_ID()");
 }
 public void GenerateParameterNamePlaceholder(StringBuilder builder, ColumnModification column) =>
 builder.Append('{').Append($"{column.ParameterName}:{column.ColumnType}").Append('}');
 protected override void AppendIdentityWhereCondition(StringBuilder commandStringBuilder, ColumnModification columnModification)
 {
     commandStringBuilder
     .Append(DelimitIdentifier(columnModification.ColumnName))
     .Append(" = ")
     .Append("last_insert_rowid()");
 }
Esempio n. 8
0
 private static string GetVariableName(ColumnModification columnModification)
 {
     return($"v{columnModification.ParameterName}_{columnModification.ColumnName}");
 }
Esempio n. 9
0
        // workaround for GenerateBlockParameterName
        protected override void AppendWhereCondition(StringBuilder commandStringBuilder, ColumnModification columnModification, bool useOriginalValue)
        {
            SqlGenerationHelper.DelimitIdentifier(commandStringBuilder, columnModification.ColumnName);
            if ((useOriginalValue ? columnModification.OriginalValue : columnModification.Value) == null)
            {
                commandStringBuilder.Append(" IS NULL");
                return;
            }

            commandStringBuilder.Append(" = ");
            if (!columnModification.UseCurrentValueParameter && !columnModification.UseOriginalValueParameter)
            {
                AppendSqlLiteral(commandStringBuilder, columnModification.Value, columnModification.Property);
            }
            else
            {
                ((IFbSqlGenerationHelper)SqlGenerationHelper).GenerateBlockParameterName(commandStringBuilder, useOriginalValue ? columnModification.OriginalParameterName : columnModification.ParameterName);
            }
        }
 public void PopulateParametersBase(DbCommand command, ColumnModification columnModification, IRelationalTypeMapper typeMapper)
 {
     base.PopulateParameters(command, columnModification, typeMapper);
 }
 protected override void PopulateParameters(DbCommand command, ColumnModification columnModification, IRelationalTypeMapper typeMapper)
 {
     PopulateParameterCalls++;
 }
 protected override void AppendIdentityWhereCondition(StringBuilder commandStringBuilder, ColumnModification columnModification)
 {
 }
        protected override void AppendWhereCondition(StringBuilder commandStringBuilder, ColumnModification columnModification,
                                                     bool useOriginalValue)
        {
            SqlGenerationHelper.DelimitIdentifier(commandStringBuilder, columnModification.ColumnName);

            var parameterValue = useOriginalValue
                ? columnModification.OriginalValue
                : columnModification.Value;

            if (parameterValue == null)
            {
                base.AppendWhereCondition(commandStringBuilder, columnModification, useOriginalValue);
            }
            else
            {
                commandStringBuilder.Append(" = ");
                if (!columnModification.UseCurrentValueParameter &&
                    !columnModification.UseOriginalValueParameter)
                {
                    base.AppendWhereCondition(commandStringBuilder, columnModification, useOriginalValue);
                }
                else
                {
                    commandStringBuilder.Append("?");
                }
            }
        }
 protected override void AppendIdentityWhereCondition(StringBuilder commandStringBuilder, ColumnModification columnModification)
 {
     throw new NotImplementedException();
 }
Esempio n. 15
0
 string GetColumnType(ColumnModification column)
 {
     return(Dependencies.TypeMappingSource.GetMapping(column.Property).StoreType);
 }
 protected override void AppendIdentityWhereCondition(StringBuilder commandStringBuilder, ColumnModification columnModification)
 {
     Check.NotNull(columnModification, "columnModification");
     Check.NotNull(commandStringBuilder, "commandStringBuilder");
     commandStringBuilder.AppendFormat("{0}=LAST_INSERT_ID()", SqlGenerationHelper.DelimitIdentifier(columnModification.ColumnName));
 }
Esempio n. 17
0
 protected override void AppendIdentityWhereCondition(StringBuilder commandStringBuilder, ColumnModification columnModification)
 => throw new InvalidOperationException();
Esempio n. 18
0
 private string GetVariableType(ColumnModification columnModification)
 {
     return(_typeMappingSource.FindMapping(columnModification.Property).StoreType);
 }
 public static void GenerateValue(StringBuilder builder, ColumnModification column)
 {
     builder.Append(GenerateValue(column));
 }
 protected override void AppendIdentityWhereCondition(StringBuilder commandStringBuilder, ColumnModification columnModification)
 {
     throw new NotImplementedException();
 }
 protected override void PopulateParameters(DbCommand command, ColumnModification columnModification, RelationalTypeMapper typeMapper)
 {
     PopulateParameterCalls++;
 }
Esempio n. 22
0
        /// <summary>
        ///     This is an internal API that supports the Entity Framework Core infrastructure and not subject to
        ///     the same compatibility standards as public APIs. It may be changed or removed without notice in
        ///     any release. You should only use it directly in your code with extreme caution and knowing that
        ///     doing so can result in application failures when updating to a new Entity Framework Core release.
        /// </summary>
        protected override void AppendIdentityWhereCondition(StringBuilder commandStringBuilder, ColumnModification columnModification)
        {
            Check.NotNull(commandStringBuilder, nameof(commandStringBuilder));
            Check.NotNull(columnModification, nameof(columnModification));

            SqlGenerationHelper.DelimitIdentifier(commandStringBuilder, "rowid");
            commandStringBuilder.Append(" = ")
            .Append("last_insert_rowid()");
        }
 public void PopulateParametersBase(DbCommand command, ColumnModification columnModification, RelationalTypeMapper typeMapper)
 {
     base.PopulateParameters(command, columnModification, typeMapper);
 }
 protected override void AppendIdentityWhereCondition(
     StringBuilder commandStringBuilder,
     ColumnModification columnModification)
 {
 }
 protected override void AppendIdentityWhereCondition(StringBuilder commandStringBuilder, ColumnModification columnModification)
 => commandStringBuilder
 .Append(SqlGenerationHelper.DelimitIdentifier(columnModification.ColumnName))
 .Append(" = ")
 .Append("provider_specific_identity()");
        protected virtual void PopulateParameters(DbCommand command, ColumnModification columnModification, RelationalTypeMapper typeMapper)
        {
            if (columnModification.ParameterName != null
                || columnModification.OriginalParameterName != null)
            {
                var property = columnModification.Property;

                var isKey = columnModification.IsKey
                            || property.IsKey()
                            || property.IsForeignKey();

                // TODO: It would be nice to just pass IProperty to the type mapper, but Migrations uses its own
                // store model for which there is no easy way to get an IProperty.
                // Issue #769
                var extensions = GetPropertyExtensions(property);
                var typeMapping = typeMapper
                    .GetTypeMapping(extensions.ColumnType, extensions.Column, property.ClrType, isKey, property.IsConcurrencyToken);

                if (columnModification.ParameterName != null)
                {
                    command.Parameters.Add(typeMapping.CreateParameter(command, columnModification, false));
                }

                if (columnModification.OriginalParameterName != null)
                {
                    command.Parameters.Add(typeMapping.CreateParameter(command, columnModification, true));
                }
            }
        }
 protected override void AppendIdentityWhereCondition(StringBuilder commandStringBuilder, ColumnModification columnModification)
     => Check.NotNull(commandStringBuilder, nameof(commandStringBuilder))
         .Append(SqlGenerator.DelimitIdentifier(Check.NotNull(columnModification, nameof(columnModification)).ColumnName))
         .Append(" = ")
         .Append("scope_identity()");