# Class NpgsqlUpdateSqlGenerator

Namespace
  Npgsql.EntityFrameworkCore.PostgreSQL.Update.Internal

Assembly
  Npgsql.EntityFrameworkCore.PostgreSQL.dll

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.

    public class NpgsqlUpdateSqlGenerator : UpdateSqlGenerator, IUpdateSqlGenerator

Inheritance
  object
  UpdateSqlGenerator
  NpgsqlUpdateSqlGenerator

Implements
  IUpdateSqlGenerator

Inherited Members
  UpdateSqlGenerator.AppendInsertOperation(StringBuilder, IReadOnlyModificationCommand, int)
  UpdateSqlGenerator.AppendInsertReturningOperation(StringBuilder, IReadOnlyModificationCommand, int, out bool)
  UpdateSqlGenerator.AppendUpdateOperation(StringBuilder, IReadOnlyModificationCommand, int)
  UpdateSqlGenerator.AppendUpdateReturningOperation(StringBuilder, IReadOnlyModificationCommand, int, out bool)
  UpdateSqlGenerator.AppendDeleteOperation(StringBuilder, IReadOnlyModificationCommand, int)
  UpdateSqlGenerator.AppendDeleteReturningOperation(StringBuilder, IReadOnlyModificationCommand, int, out bool)
  UpdateSqlGenerator.AppendInsertCommand(StringBuilder, string, string, IReadOnlyList<IColumnModification>, IReadOnlyList<IColumnModification>)
  UpdateSqlGenerator.AppendUpdateCommand(StringBuilder, string, string, IReadOnlyList<IColumnModification>, IReadOnlyList<IColumnModification>, IReadOnlyList<IColumnModification>, bool)
  UpdateSqlGenerator.AppendDeleteCommand(StringBuilder, string, string, IReadOnlyList<IColumnModification>, IReadOnlyList<IColumnModification>, bool)
  UpdateSqlGenerator.AppendInsertCommandHeader(StringBuilder, string, string, IReadOnlyList<IColumnModification>)
  UpdateSqlGenerator.AppendDeleteCommandHeader(StringBuilder, string, string)
  UpdateSqlGenerator.AppendUpdateCommandHeader(StringBuilder, string, string, IReadOnlyList<IColumnModification>)
  UpdateSqlGenerator.AppendValuesHeader(StringBuilder, IReadOnlyList<IColumnModification>)
  UpdateSqlGenerator.AppendValues(StringBuilder, string, string, IReadOnlyList<IColumnModification>)
  UpdateSqlGenerator.AppendReturningClause(StringBuilder, IReadOnlyList<IColumnModification>, string)
  UpdateSqlGenerator.AppendWhereClause(StringBuilder, IReadOnlyList<IColumnModification>)
  UpdateSqlGenerator.AppendWhereCondition(StringBuilder, IColumnModification, bool)
  UpdateSqlGenerator.AppendBatchHeader(StringBuilder)
  UpdateSqlGenerator.PrependEnsureAutocommit(StringBuilder)
  UpdateSqlGenerator.GenerateNextSequenceValueOperation(string, string)
  UpdateSqlGenerator.AppendNextSequenceValueOperation(StringBuilder, string, string)
  UpdateSqlGenerator.GenerateObtainNextSequenceValueOperation(string, string)
  UpdateSqlGenerator.AppendSqlLiteral(StringBuilder, IColumnModification, string, string)
  UpdateSqlGenerator.Dependencies
  UpdateSqlGenerator.SqlGenerationHelper
  object.Equals(object)
  object.Equals(object, object)
  object.GetHashCode()
  object.GetType()
  object.MemberwiseClone()
  object.ReferenceEquals(object, object)
  object.ToString()

## Constructors

### NpgsqlUpdateSqlGenerator(UpdateSqlGeneratorDependencies)

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.

    public NpgsqlUpdateSqlGenerator(UpdateSqlGeneratorDependencies dependencies)

#### Parameters

`dependencies` UpdateSqlGeneratorDependencies

## Methods

### AppendDeleteOperation(StringBuilder, IReadOnlyModificationCommand, int, out bool)

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.

    public override ResultSetMapping AppendDeleteOperation(StringBuilder commandStringBuilder, IReadOnlyModificationCommand command, int commandPosition, out bool requiresTransaction)

#### Parameters

`commandStringBuilder` StringBuilder
`command` IReadOnlyModificationCommand
`commandPosition` int
`requiresTransaction` bool

#### Returns

ResultSetMapping

### AppendInsertCommand(StringBuilder, string, string?, IReadOnlyList<IColumnModification>, IReadOnlyList<IColumnModification>, bool)

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.

    protected virtual void AppendInsertCommand(StringBuilder commandStringBuilder, string name, string? schema, IReadOnlyList<IColumnModification> writeOperations, IReadOnlyList<IColumnModification> readOperations, bool overridingSystemValue)

#### Parameters

`commandStringBuilder` StringBuilder
`name` string
`schema` string
`writeOperations` IReadOnlyList<IColumnModification>
`readOperations` IReadOnlyList<IColumnModification>
`overridingSystemValue` bool

### AppendInsertOperation(StringBuilder, IReadOnlyModificationCommand, int, bool, out bool)

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.

    public virtual ResultSetMapping AppendInsertOperation(StringBuilder commandStringBuilder, IReadOnlyModificationCommand command, int commandPosition, bool overridingSystemValue, out bool requiresTransaction)

#### Parameters

`commandStringBuilder` StringBuilder
`command` IReadOnlyModificationCommand
`commandPosition` int
`overridingSystemValue` bool
`requiresTransaction` bool

#### Returns

ResultSetMapping

### AppendInsertOperation(StringBuilder, IReadOnlyModificationCommand, int, out bool)

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.

    public override ResultSetMapping AppendInsertOperation(StringBuilder commandStringBuilder, IReadOnlyModificationCommand command, int commandPosition, out bool requiresTransaction)

#### Parameters

`commandStringBuilder` StringBuilder
`command` IReadOnlyModificationCommand
`commandPosition` int
`requiresTransaction` bool

#### Returns

ResultSetMapping

### AppendObtainNextSequenceValueOperation(StringBuilder, string, string?)

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.

    public override void AppendObtainNextSequenceValueOperation(StringBuilder commandStringBuilder, string name, string? schema)

#### Parameters

`commandStringBuilder` StringBuilder
`name` string
`schema` string

### AppendStoredProcedureCall(StringBuilder, IReadOnlyModificationCommand, int, out bool)

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.

    public override ResultSetMapping AppendStoredProcedureCall(StringBuilder commandStringBuilder, IReadOnlyModificationCommand command, int commandPosition, out bool requiresTransaction)

#### Parameters

`commandStringBuilder` StringBuilder
`command` IReadOnlyModificationCommand
`commandPosition` int
`requiresTransaction` bool

#### Returns

ResultSetMapping

### AppendUpdateColumnValue(ISqlGenerationHelper, IColumnModification, StringBuilder, string, string?)

Appends a SQL fragment representing the value that is assigned to a column which is being updated.

    protected override void AppendUpdateColumnValue(ISqlGenerationHelper updateSqlGeneratorHelper, IColumnModification columnModification, StringBuilder stringBuilder, string name, string? schema)

#### Parameters

`updateSqlGeneratorHelper` ISqlGenerationHelper

  The update sql generator helper.

`columnModification` IColumnModification

  The operation representing the data to be updated.

`stringBuilder` StringBuilder

  The builder to which the SQL should be appended.

`name` string

  The name of the table.

`schema` string

  The table schema, or null to use the default schema.

### AppendUpdateOperation(StringBuilder, IReadOnlyModificationCommand, int, out bool)

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.

    public override ResultSetMapping AppendUpdateOperation(StringBuilder commandStringBuilder, IReadOnlyModificationCommand command, int commandPosition, out bool requiresTransaction)

#### Parameters

`commandStringBuilder` StringBuilder
`command` IReadOnlyModificationCommand
`commandPosition` int
`requiresTransaction` bool

#### Returns

ResultSetMapping