/// <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()"); }
protected abstract void AppendIdentityWhereCondition( [NotNull] StringBuilder commandStringBuilder, [NotNull] ColumnModification columnModification);
protected override void AppendIdentityWhereCondition(StringBuilder commandStringBuilder, ColumnModification columnModification) { commandStringBuilder .Append(QuoteIdentifier(columnModification.ColumnName)) .Append(" = ") .Append("provider_specific_identity()"); }
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()"); }
private static string GetVariableName(ColumnModification columnModification) { return($"v{columnModification.ParameterName}_{columnModification.ColumnName}"); }
// 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(); }
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)); }
protected override void AppendIdentityWhereCondition(StringBuilder commandStringBuilder, ColumnModification columnModification) => throw new InvalidOperationException();
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++; }
/// <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()");