# Class NpgsqlValueGeneratorSelector

Namespace
  Npgsql.EntityFrameworkCore.PostgreSQL.ValueGeneration.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 NpgsqlValueGeneratorSelector : RelationalValueGeneratorSelector, IValueGeneratorSelector

Inheritance
  object
  ValueGeneratorSelector
  RelationalValueGeneratorSelector
  NpgsqlValueGeneratorSelector

Implements
  IValueGeneratorSelector

Inherited Members
  ValueGeneratorSelector.Select(IProperty, ITypeBase)
  ValueGeneratorSelector.Create(IProperty, ITypeBase)
  ValueGeneratorSelector.TryCreate(IProperty, ITypeBase, out ValueGenerator)
  ValueGeneratorSelector.Dependencies
  object.Equals(object)
  object.Equals(object, object)
  object.GetHashCode()
  object.GetType()
  object.MemberwiseClone()
  object.ReferenceEquals(object, object)
  object.ToString()

## Constructors

### NpgsqlValueGeneratorSelector(ValueGeneratorSelectorDependencies, INpgsqlSequenceValueGeneratorFactory, INpgsqlRelationalConnection, IRawSqlCommandBuilder, IRelationalCommandDiagnosticsLogger)

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 NpgsqlValueGeneratorSelector(ValueGeneratorSelectorDependencies dependencies, INpgsqlSequenceValueGeneratorFactory sequenceFactory, INpgsqlRelationalConnection connection, IRawSqlCommandBuilder rawSqlCommandBuilder, IRelationalCommandDiagnosticsLogger commandLogger)

#### Parameters

`dependencies` ValueGeneratorSelectorDependencies
`sequenceFactory` INpgsqlSequenceValueGeneratorFactory
`connection` INpgsqlRelationalConnection
`rawSqlCommandBuilder` IRawSqlCommandBuilder
`commandLogger` IRelationalCommandDiagnosticsLogger

## Properties

### Cache

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.

    public virtual INpgsqlValueGeneratorCache Cache { get; }

#### Property Value

INpgsqlValueGeneratorCache

## Methods

### FindForType(IProperty, ITypeBase, Type)

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 override ValueGenerator? FindForType(IProperty property, ITypeBase typeBase, Type clrType)

#### Parameters

`property` IProperty
`typeBase` ITypeBase
`clrType` Type

#### Returns

ValueGenerator

### TrySelect(IProperty, ITypeBase, out ValueGenerator?)

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 bool TrySelect(IProperty property, ITypeBase typeBase, out ValueGenerator? valueGenerator)

#### Parameters

`property` IProperty
`typeBase` ITypeBase
`valueGenerator` ValueGenerator

#### Returns

bool