EntityFrameworkCore.Exceptions.PostgreSQL 8.0.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package EntityFrameworkCore.Exceptions.PostgreSQL --version 8.0.0
NuGet\Install-Package EntityFrameworkCore.Exceptions.PostgreSQL -Version 8.0.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="EntityFrameworkCore.Exceptions.PostgreSQL" Version="8.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add EntityFrameworkCore.Exceptions.PostgreSQL --version 8.0.0
#r "nuget: EntityFrameworkCore.Exceptions.PostgreSQL, 8.0.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install EntityFrameworkCore.Exceptions.PostgreSQL as a Cake Addin
#addin nuget:?package=EntityFrameworkCore.Exceptions.PostgreSQL&version=8.0.0

// Install EntityFrameworkCore.Exceptions.PostgreSQL as a Cake Tool
#tool nuget:?package=EntityFrameworkCore.Exceptions.PostgreSQL&version=8.0.0



Handle database errors easily when working with Entity Framework Core. Supports SQLServer, PostgreSQL, SQLite, Oracle and MySql

License Target AppVeyor AppVeyor Coverage Status Ko-Fi

Maintainability Rating Vulnerabilities Bugs Code Smells Duplicated Lines (%) Coverage

Build Stats

alternate text is missing from this package README image alternate text is missing from this package README image alternate text is missing from this package README image alternate text is missing from this package README image alternate text is missing from this package README image alternate text is missing from this package README image

Entity Framework Community Standup Live Show

Entity Framework Community Standup - Typed Exceptions for Entity Framework Core

What does EntityFramework.Exceptions do?

When using Entity Framework Core for data access all database exceptions are wrapped in DbUpdateException. If you need to find whether the exception was caused by a unique constraint, value being too long or value missing for a required column you need to dig into the concrete DbException subclass instance and check the error code to determine the exact cause.

EntityFramework.Exceptions simplifies this by handling all the database specific details and throwing different exceptions. All you have to do is to configure DbContext by calling UseExceptionProcessor and handle the exception(s) such as UniqueConstraintException, CannotInsertNullException, MaxLengthExceededException, NumericOverflowException, ReferenceConstraintException you need. All these exceptions inherit from DbUpdateException for backwards compatibility.

How do I get started?

First, install the package corresponding to your database:

PM> Install-Package EntityFrameworkCore.Exceptions.SqlServer
PM> Install-Package EntityFrameworkCore.Exceptions.MySql
PM> Install-Package EntityFrameworkCore.Exceptions.MySql.Pomelo
PM> Install-Package EntityFrameworkCore.Exceptions.PostgreSQL
PM> Install-Package EntityFrameworkCore.Exceptions.Sqlite
PM> Install-Package EntityFrameworkCore.Exceptions.Oracle


dotnet add package EntityFrameworkCore.Exceptions.SqlServer
dotnet add package EntityFrameworkCore.Exceptions.MySql
dotnet add package EntityFrameworkCore.Exceptions.MySql.Pomelo
dotnet add package EntityFrameworkCore.Exceptions.PostgreSQL
dotnet add package EntityFrameworkCore.Exceptions.Sqlite
dotnet add package EntityFrameworkCore.Exceptions.Oracle

Next, in your DbContext OnConfiguring method call UseExceptionProcessor extension method:

class DemoContext : DbContext
    public DbSet<Product> Products { get; set; }
    public DbSet<ProductSale> ProductSale { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)

You will now start getting different exception for different database error. For example, when a unique constraints fails you will get UniqueConstraintException exception:

using (var demoContext = new DemoContext())
    demoContext.Products.Add(new Product
        Name = "a",
        Price = 1

    demoContext.Products.Add(new Product
        Name = "a",
        Price = 1

    catch (UniqueConstraintException e)
        //Handle exception here
Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (5)

Showing the top 5 NuGet packages that depend on EntityFrameworkCore.Exceptions.PostgreSQL:

Package Downloads

Package Description


Provides extra authorization and multi-tenant features to an ASP.NET Core application.


Package Description


Package Description


Package Description

GitHub repositories (3)

Showing the top 3 popular GitHub repositories that depend on EntityFrameworkCore.Exceptions.PostgreSQL:

Repository Stars
This library provides extra authorization and multi-tenant features to an ASP.NET Core application.
A Dotnet 8.0 WebApi template project. MediatR, Swagger, Mapper, Serilog and more implemented.
Valour is bringing communities into the future with unique features, blazing performance, and respect for users.
Version Downloads Last updated
8.1.2 64,581 3/22/2024
8.1.1 1,569 3/21/2024
8.1.0 5,016 3/16/2024
8.0.0 100,282 12/11/2023
6.0.3 889,575 3/16/2022
3.1.4 131,520 2/12/2021
3.1.1 62,197 1/22/2020
1.0.1 18,050 6/11/2019
1.0.0 1,668 1/23/2019
0.1.0-beta 570 12/5/2018

Update to .NET 8 and EF Core 8