Releases for RepoDb.EnterpriseDb
View the NuGet package here or download it directly here.
RepoDb.EnterpriseDb (v0.0.1-alpha) - Preview
Released: TBA
New
First (alpha) release of the EnterpriseDB provider for RepoDB, built on top of the Npgsql-backed RepoDb.Connector.EnterpriseDb connector for EDB Postgres Advanced Server. Targets .NET 8 and .NET 10.
What’s included
- EnterpriseDbBootstrap / EnterpriseDbGlobalConfiguration
.UseEnterpriseDb()— initializes RepoDB for use withEDBConnection(GlobalConfiguration.Setup().UseEnterpriseDb()), mapping the EnterpriseDbDbSetting, EnterpriseDbDbHelper, and EnterpriseDbStatementBuilder againstRepoDb.Connector.EnterpriseDb.EDBConnection. - EnterpriseDbDbSetting —
"identifier quotes,@parameter prefix,publicdefault schema, no table hints, multi-statement command text supported. - EnterpriseDbStatementBuilder — generates EDB Postgres-flavored SQL:
LIMIT/LIMIT ... OFFSETpaging, a trailingRETURNINGclause for Insert,INSERT ... ON CONFLICT DO UPDATEfor Merge/MergeAll (withOVERRIDING SYSTEM VALUEfor explicit identity inserts), andRESTART IDENTITYfor Truncate. - EnterpriseDbDbHelper — schema/type discovery (
GetFields/GetFieldsAsync) sourced frominformation_schema.columnsjoined againstpg_index/pg_namespace.GetScopeIdentity/GetScopeIdentityAsyncrunSELECT lastval();. Both transparently retry once on a fresh connection if the original connection reports an operation already in progress. Array-valued parameters have theirEDBTypeinferred directly by the driver; this helper only convertsDateOnly[]/TimeOnly[]element arrays before binding. - Resolvers — EnterpriseDbDbTypeNameToClientTypeResolver (database type name → .NET CLR type), DbTypeToEnterpriseDbStringNameResolver (
DbType→ EDB SQL type name), ClientTypeToEDBDbTypeResolver (.NET CLR type →EDBType), and EnterpriseDbDbTypeNameToEDBDbTypeResolver (database type name →EDBType). - EnterpriseDbConvertFieldResolver — builds
CAST(...)expressions for typed Field objects. Parameter attributes mirroring
EDBParametermembers, settable per entity property: EnterpriseDbType, DbType, Direction, IsNullable, ParameterName, Precision, Scale, Size, SourceColumn, SourceColumnNullMapping, SourceVersion, Value, and the obsolete ConvertedValue.- Referenced the
RepoDbpackagev1.16.0. - Referenced the
RepoDb.Connector.EnterpriseDbpackagev0.0.1-alpha2.
Known limitations (v1)
- InsertAll does not append a
RETURNINGclause (EDB Postgres rejectsRETURNINGagainst a sub-tableVALUESexpression) — generated identities are only returned via Insert or the bulk operations in RepoDb.EnterpriseDb.BulkOperations. - No table hints of any kind —
AreTableHintsSupportedisfalse; passing a non-nullhintsargument throws aNotSupportedException. - The
[ConvertedValue]attribute is obsolete — no longer supported byRepoDb.Connector.EnterpriseDb. - No CLR representation exists for PostgreSQL geometric types (
box,circle,line,lseg,path,point,polygon),pg_lsn,tid, or text-search types (tsquery,tsvector) on the Npgsql-backed connector this provider is built on — columns of these types resolve toobjectand have no matchingEDBType. - Only EDB Postgres Advanced Server is targeted; behavior against community PostgreSQL is not a design goal of this provider (use RepoDb.PostgreSql for that).