PostgreSqlDbTypeNameToNpgsqlDbTypeResolver
This IResolver<string, NpgsqlDbType?> implementation converts a PostgreSQL database type name into its equivalent NpgsqlDbType. It resolves in three steps:
- Tries to parse the name directly as an
NpgsqlDbTypeenum member. - Returns
NpgsqlDbType.Unknownfor the reflection-reportedUSER-DEFINEDtype (e.g. a native PostgreSQL enum type). - 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