Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hassanhabib/efxceptions
.NET Standard library to convert DbUpdateException into meaningful exceptions
https://github.com/hassanhabib/efxceptions
entityframework entityframeworkcore exceptions sql
Last synced: about 5 hours ago
JSON representation
.NET Standard library to convert DbUpdateException into meaningful exceptions
- Host: GitHub
- URL: https://github.com/hassanhabib/efxceptions
- Owner: hassanhabib
- Created: 2020-04-12T01:28:04.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-10-11T21:23:04.000Z (about 1 year ago)
- Last Synced: 2023-10-12T03:17:31.946Z (about 1 year ago)
- Topics: entityframework, entityframeworkcore, exceptions, sql
- Language: C#
- Homepage: https://www.efxceptions.com
- Size: 104 KB
- Stars: 31
- Watchers: 6
- Forks: 21
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
[![.NET](https://github.com/hassanhabib/EFxceptions/actions/workflows/dotnet.yml/badge.svg)](https://github.com/hassanhabib/EFxceptions/actions/workflows/dotnet.yml)
[![The Standard - COMPLIANT](https://img.shields.io/badge/The_Standard-COMPLIANT-2ea44f)](https://github.com/hassanhabib/The-Standard)# EFxceptions
[![preview version](https://img.shields.io/nuget/vpre/EFxceptions)](https://www.nuget.org/packages/EFxceptions/absoluteLatest)
We have designed and developed this library as a wrapper around the existing EntityFramework DbContext implementation to provide the following values:
- Meaningful Exceptions for SQL error codes.
- Simplified integrations
- Test-friendly implementation.
# EFxeptions.Identity
[![preview version](https://img.shields.io/nuget/vpre/EFxceptions.Identity)](https://www.nuget.org/packages/EFxceptions.Identity/absoluteLatest)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](https://www.nuget.org/packages/EFxceptions.Identity) package.## Installation
You can get EFxceptions [Nuget](https://www.nuget.org/packages/EFxceptions/) package by typing:
```powershell
Install-Package EFxceptions
```
## Integration
Replace your existing ```DbContext``` class with ```EFxceptionsContext``` (or your `IdentityDbContext` with `EFxeption.EFxceptionIdentityContext`) as follows:#### Before:
```csharp
public partial class StorageBroker : DbContext, IStorageBroker
{
public StorageBroker(DbContextOptions options)
: base(options) => this.Database.Migrate();
}```
#### After:
```csharp
public partial class StorageBroker : EFxceptionsContext, IStorageBroker
{
public StorageBroker(DbContextOptions options)
: base(options) => this.Database.Migrate();
}```
## Supported SQL Error Codes
SQL server supports over [41,000 error codes](https://docs.microsoft.com/en-us/sql/relational-databases/errors-events/database-engine-events-and-errors?view=sql-server-ver15), 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|
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.
If you have any suggestions, comments or questions, please feel free to contact me on:
Twitter: @hassanrezkhabib
LinkedIn: hassanrezkhabib
E-Mail: [email protected]