EFxceptions 0.4.5

.NET Standard 2.0
dotnet add package EFxceptions --version 0.4.5
NuGet\Install-Package EFxceptions -Version 0.4.5
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="EFxceptions" Version="0.4.5" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add EFxceptions --version 0.4.5
#r "nuget: EFxceptions, 0.4.5"
#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 EFxceptions as a Cake Addin
#addin nuget:?package=EFxceptions&version=0.4.5

// Install EFxceptions as a Cake Tool
#tool nuget:?package=EFxceptions&version=0.4.5

<p align="center"> <img width="25%" height="25%" src="https://github.com/hassanhabib/EFxceptions/blob/master/EFxceptions.Shared/Resources/EFxceptions.png?raw=true"> </p>


preview version

We have designed and developed this library as a wrapper around the existing EntityFramework DbContext implementation to provide the following values:

<ol> <li>Meaningful Exceptions for SQL error codes.</li> <li>Simplified integrations</li> <li>Test-friendly implementation.</li> </ol>



preview version

A dedicated EFxeptions port that provides an EFxceptionContext that inherits from Microsoft.AspNetCore.Identity.EntityFrameworkCore.IdentityDbContext to inherit from, to support Microsoft ASP.Core Identity using EF Core. Available in the EFxceptions.Identity package.


You can get EFxceptions Nuget package by typing:

Install-Package EFxceptions



Replace your existing DbContext class with EFxceptionsContext (or your IdentityDbContext with EFxeption.EFxceptionIdentityContext) as follows:

    public partial class StorageBroker : DbContext, IStorageBroker
        public StorageBroker(DbContextOptions<StorageBroker> options)
            : base(options) => this.Database.Migrate();

    public partial class StorageBroker : EFxceptionsContext, IStorageBroker
        public StorageBroker(DbContextOptions<StorageBroker> options)
            : base(options) => this.Database.Migrate();


Supported SQL Error Codes

SQL server supports over 41,000 error codes, here's the codes that this library supports so far:

Code Meanings Exception
207 Invalid column name '%.*ls'. InvalidColumnNameException
208 Invalid object name '%.*ls'. InvalidObjectNameException
547 The %ls statement conflicted with the %ls constraint "%.*ls". The conflict occurred in database "%.*ls", table "%.*ls"%ls%.*ls%ls. ForeignKeyConstraintConflictException
2627 Violation of %ls constraint '%.*ls'. Cannot insert duplicate key in object '%.*ls'. DuplicateKeyException

<br >

This library is forever growing as we add more exceptions and codes into it, we appreciate any contributions as there are so many codes we need to cover, so please stay tuned.

<br />

If you have any suggestions, comments or questions, please feel free to contact me on: <br /> Twitter: @hassanrezkhabib <br /> LinkedIn: hassanrezkhabib <br /> E-Mail: hassanhabib@live.com <br />

Product Versions
.NET net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows net7.0 net7.0-android net7.0-ios net7.0-maccatalyst net7.0-macos net7.0-tvos net7.0-windows
.NET Core netcoreapp2.0 netcoreapp2.1 netcoreapp2.2 netcoreapp3.0 netcoreapp3.1
.NET Standard netstandard2.0 netstandard2.1
.NET Framework net461 net462 net463 net47 net471 net472 net48 net481
MonoAndroid monoandroid
MonoMac monomac
MonoTouch monotouch
Tizen tizen40 tizen60
Xamarin.iOS xamarinios
Xamarin.Mac xamarinmac
Xamarin.TVOS xamarintvos
Xamarin.WatchOS xamarinwatchos
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on EFxceptions:

Package Downloads

Package Description


A .NET Library for essential code according to The Standard

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.4.5 20,160 5/21/2021
0.4.4 5,637 7/11/2020
0.4.2 533 7/8/2020
0.4.1 395 7/8/2020
0.4.0 2,819 5/4/2020
0.3.0 621 4/26/2020
0.2.0 1,066 4/14/2020
0.1.0 383 4/12/2020

Handle DuplicateKeyWithUniqueIndexException for SQL code 2601