Link Search Menu Expand Document

PostgreSqlDbTypeNameToNpgsqlDbTypeResolver


This IResolver<string, NpgsqlDbType?> implementation converts a PostgreSQL database type name into its equivalent NpgsqlDbType. It resolves in three steps:

  1. Tries to parse the name directly as an NpgsqlDbType enum member.
  2. Returns NpgsqlDbType.Unknown for the reflection-reported USER-DEFINED type (e.g. a native PostgreSQL enum type).
  3. Otherwise, falls back to PostgreSqlDbTypeNameToClientTypeResolver to get the .NET CLR type, then ClientTypeToNpgsqlDbTypeResolver to resolve that type into its NpgsqlDbType.

It is used by the PostgreSQL bulk operations (RepoDb.PostgreSql.BulkOperations) to determine the NpgsqlDbType of a column from its database type name when writing via the binary importer.

Usability

var resolver = new PostgreSqlDbTypeNameToNpgsqlDbTypeResolver();
var npgsqlDbType = resolver.Resolve("uuid"); // NpgsqlDbType.Uuid