# Class NpgsqlRuntimeModelConvention

Namespace
  Npgsql.EntityFrameworkCore.PostgreSQL.Metadata.Conventions

Assembly
  Npgsql.EntityFrameworkCore.PostgreSQL.dll

A convention that creates an optimized copy of the mutable model.

    public class NpgsqlRuntimeModelConvention : RelationalRuntimeModelConvention, IModelFinalizedConvention, IConvention

Inheritance
  object
  RuntimeModelConvention
  RelationalRuntimeModelConvention
  NpgsqlRuntimeModelConvention

Implements
  IModelFinalizedConvention
  IConvention

Inherited Members
  RelationalRuntimeModelConvention.ProcessComplexTypeAnnotations(Dictionary<string, object>, IComplexType, RuntimeComplexType, bool)
  RelationalRuntimeModelConvention.ProcessEntityTypeMappingFragmentAnnotations(Dictionary<string, object>, IEntityTypeMappingFragment, RuntimeEntityTypeMappingFragment, bool)
  RelationalRuntimeModelConvention.ProcessFunctionAnnotations(Dictionary<string, object>, IDbFunction, RuntimeDbFunction, bool)
  RelationalRuntimeModelConvention.ProcessFunctionParameterAnnotations(Dictionary<string, object>, IDbFunctionParameter, RuntimeDbFunctionParameter, bool)
  RelationalRuntimeModelConvention.ProcessSequenceAnnotations(Dictionary<string, object>, ISequence, RuntimeSequence, bool)
  RelationalRuntimeModelConvention.ProcessPropertyOverridesAnnotations(Dictionary<string, object>, IRelationalPropertyOverrides, RuntimeRelationalPropertyOverrides, bool)
  RelationalRuntimeModelConvention.ProcessKeyAnnotations(Dictionary<string, object>, IKey, RuntimeKey, bool)
  RelationalRuntimeModelConvention.ProcessForeignKeyAnnotations(Dictionary<string, object>, IForeignKey, RuntimeForeignKey, bool)
  RelationalRuntimeModelConvention.ProcessStoredProcedureAnnotations(Dictionary<string, object>, IStoredProcedure, RuntimeStoredProcedure, bool)
  RelationalRuntimeModelConvention.ProcessStoredProcedureParameterAnnotations(Dictionary<string, object>, IStoredProcedureParameter, RuntimeStoredProcedureParameter, bool)
  RelationalRuntimeModelConvention.ProcessStoredProcedureResultColumnAnnotations(Dictionary<string, object>, IStoredProcedureResultColumn, RuntimeStoredProcedureResultColumn, bool)
  RelationalRuntimeModelConvention.RelationalDependencies
  RuntimeModelConvention.ProcessModelFinalized(IModel)
  RuntimeModelConvention.Create(IModel)
  RuntimeModelConvention.ProcessTypeMappingConfigurationAnnotations(Dictionary<string, object>, ITypeMappingConfiguration, RuntimeTypeMappingConfiguration, bool)
  RuntimeModelConvention.ProcessElementTypeAnnotations(Dictionary<string, object>, IElementType, RuntimeElementType, bool)
  RuntimeModelConvention.ProcessServicePropertyAnnotations(Dictionary<string, object>, IServiceProperty, RuntimeServiceProperty, bool)
  RuntimeModelConvention.ProcessComplexPropertyAnnotations(Dictionary<string, object>, IComplexProperty, RuntimeComplexProperty, bool)
  RuntimeModelConvention.ProcessTriggerAnnotations(Dictionary<string, object>, ITrigger, RuntimeTrigger, bool)
  RuntimeModelConvention.ProcessNavigationAnnotations(Dictionary<string, object>, INavigation, RuntimeNavigation, bool)
  RuntimeModelConvention.GetForeignKey(IForeignKey, RuntimeEntityType)
  RuntimeModelConvention.GetKey(IKey, RuntimeEntityType)
  RuntimeModelConvention.GetIndex(IIndex, RuntimeEntityType)
  RuntimeModelConvention.ProcessSkipNavigationAnnotations(Dictionary<string, object>, ISkipNavigation, RuntimeSkipNavigation, bool)
  RuntimeModelConvention.Dependencies
  object.Equals(object)
  object.Equals(object, object)
  object.GetHashCode()
  object.GetType()
  object.MemberwiseClone()
  object.ReferenceEquals(object, object)
  object.ToString()

## Constructors

### NpgsqlRuntimeModelConvention(ProviderConventionSetBuilderDependencies, RelationalConventionSetBuilderDependencies)

Creates a new instance of NpgsqlRuntimeModelConvention.

    public NpgsqlRuntimeModelConvention(ProviderConventionSetBuilderDependencies dependencies, RelationalConventionSetBuilderDependencies relationalDependencies)

#### Parameters

`dependencies` ProviderConventionSetBuilderDependencies

  Parameter object containing dependencies for this convention.

`relationalDependencies` RelationalConventionSetBuilderDependencies

  Parameter object containing relational dependencies for this convention.

## Methods

### ProcessEntityTypeAnnotations(Dictionary<string, object?>, IEntityType, RuntimeEntityType, bool)

Updates the entity type annotations that will be set on the read-only object.

    protected override void ProcessEntityTypeAnnotations(Dictionary<string, object?> annotations, IEntityType entityType, RuntimeEntityType runtimeEntityType, bool runtime)

#### Parameters

`annotations` Dictionary<string, object>

  The annotations to be processed.

`entityType` IEntityType

  The source entity type.

`runtimeEntityType` RuntimeEntityType

  The target entity type that will contain the annotations.

`runtime` bool

  Indicates whether the given annotations are runtime annotations.

### ProcessIndexAnnotations(Dictionary<string, object?>, IIndex, RuntimeIndex, bool)

Updates the index annotations that will be set on the read-only object.

    protected override void ProcessIndexAnnotations(Dictionary<string, object?> annotations, IIndex index, RuntimeIndex runtimeIndex, bool runtime)

#### Parameters

`annotations` Dictionary<string, object>

  The annotations to be processed.

`index` IIndex

  The source index.

`runtimeIndex` RuntimeIndex

  The target index that will contain the annotations.

`runtime` bool

  Indicates whether the given annotations are runtime annotations.

### ProcessModelAnnotations(Dictionary<string, object?>, IModel, RuntimeModel, bool)

Updates the model annotations that will be set on the read-only object.

    protected override void ProcessModelAnnotations(Dictionary<string, object?> annotations, IModel model, RuntimeModel runtimeModel, bool runtime)

#### Parameters

`annotations` Dictionary<string, object>

  The annotations to be processed.

`model` IModel

  The source model.

`runtimeModel` RuntimeModel

  The target model that will contain the annotations.

`runtime` bool

  Indicates whether the given annotations are runtime annotations.

### ProcessPropertyAnnotations(Dictionary<string, object?>, IProperty, RuntimeProperty, bool)

Updates the property annotations that will be set on the read-only object.

    protected override void ProcessPropertyAnnotations(Dictionary<string, object?> annotations, IProperty property, RuntimeProperty runtimeProperty, bool runtime)

#### Parameters

`annotations` Dictionary<string, object>

  The annotations to be processed.

`property` IProperty

  The source property.

`runtimeProperty` RuntimeProperty

  The target property that will contain the annotations.

`runtime` bool

  Indicates whether the given annotations are runtime annotations.