PureLogicTek.DapperPipeline.PostgreSql
1.12.0
dotnet add package PureLogicTek.DapperPipeline.PostgreSql --version 1.12.0
NuGet\Install-Package PureLogicTek.DapperPipeline.PostgreSql -Version 1.12.0
<PackageReference Include="PureLogicTek.DapperPipeline.PostgreSql" Version="1.12.0" />
<PackageVersion Include="PureLogicTek.DapperPipeline.PostgreSql" Version="1.12.0" />
<PackageReference Include="PureLogicTek.DapperPipeline.PostgreSql" />
paket add PureLogicTek.DapperPipeline.PostgreSql --version 1.12.0
#r "nuget: PureLogicTek.DapperPipeline.PostgreSql, 1.12.0"
#:package PureLogicTek.DapperPipeline.PostgreSql@1.12.0
#addin nuget:?package=PureLogicTek.DapperPipeline.PostgreSql&version=1.12.0
#tool nuget:?package=PureLogicTek.DapperPipeline.PostgreSql&version=1.12.0
PureLogicTek.DapperPipeline.PostgreSql
PostgreSQL dialect for PureLogicTek.DapperPipeline.
dotnet add package PureLogicTek.DapperPipeline.PostgreSql
services.AddDapperPipeline(new PostgreSqlDialect(connectionString));
Provides PostgreSqlDialect (backed by Npgsql):
@Wordnamed-parameter scanning (Npgsql named mode)- Retry on transient errors via
NpgsqlException.IsTransient
ExtractErrorCode returns the SQLSTATE (23505 unique violation, 40P01 deadlock). Map it with
SqlState for an exact code, or SqlStateClass to match a whole class:
services.AddSingleton<IErrorMapper>(new SqlState("23505", ex => new DuplicateKeyException(ex.Message)));
services.AddSingleton<IErrorMapper>(new SqlStateClass("23", (ex, s) => new ConstraintViolationException(s, ex.Message)));
PostgreSQL has no table variables — use CTEs instead of
DECLARE @Var TABLE.
See the main DapperPipeline README for full usage.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Npgsql (>= 9.0.0)
- PureLogicTek.DapperPipeline (>= 1.12.0)
-
net8.0
- Npgsql (>= 9.0.0)
- PureLogicTek.DapperPipeline (>= 1.12.0)
-
net9.0
- Npgsql (>= 9.0.0)
- PureLogicTek.DapperPipeline (>= 1.12.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated | |
|---|---|---|---|
| 1.12.0 | 1,590 | 8/24/2026 | |
| 1.11.2 | 116 | 8/24/2026 | |
| 1.11.1 | 123 | 8/24/2026 | |
| 1.11.0 | 109 | 8/24/2026 | |
| 1.10.0 | 112 | 8/24/2026 | |
| 1.9.0 | 924 | 7/14/2026 | |
| 1.8.0 | 151 | 7/13/2026 | |
| 1.7.1 | 119 | 7/13/2026 | |
| 1.7.0 | 109 | 7/13/2026 | |
| 1.6.0 | 112 | 7/13/2026 | |
| 1.5.1 | 115 | 7/13/2026 | |
| 1.5.0 | 123 | 7/13/2026 | |
| 1.4.1 | 116 | 7/13/2026 | |
| 1.4.0 | 118 | 7/13/2026 | |
| 1.3.0 | 119 | 7/13/2026 | |
| 1.2.0 | 119 | 7/13/2026 | |
| 1.1.0 | 110 | 7/13/2026 | |
| 1.0.3 | 125 | 7/13/2026 | |
| 1.0.2 | 140 | 7/11/2026 | |
| 1.0.1 | 141 | 7/11/2026 |
New: x.SqlParam() and x.SqlIdentifier() -- the two doors a raw string can take into SQL, now discoverable in IntelliSense with no extra using. Sql.Text is deprecated in favour of x.SqlParam() (warning; removed in 2.0). Sql.Identifier is unchanged.
Fixes: ToDebug() on SQL Server emitted DECLARE @@p001_x -- a doubled @, which is T-SQL's system-variable prefix, so the script was invalid and could not be pasted into SSMS. Parameter names could contain characters SQL rejects (Sql.Text("literal") produced @p001_"literal"). Parameter scopes are now 1-based, so the first command emits @p001_* as the docs have always said -- it was emitting @p000_*.
NOTE: generated parameter NAMES change in this release. They are not API, but if you hardcoded one in AppendRaw or snapshot-tested generated SQL, you will see a diff.
Full notes: https://github.com/purelogictek-inc/DapperPipeline/blob/main/CHANGELOG.md