Description
Handle database errors easily when working with Entity Framework Core. Supports SQLServer, PostgreSQL and MySql
EntityFramework.Exceptions alternatives and similar packages
Based on the "Exceptions" category.
Alternatively, view EntityFramework.Exceptions alternatives based on common mentions on social networks and blogs.
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest. Visit our partner's website for more details.
Do you think we are missing an alternative of EntityFramework.Exceptions or a related project?
Popular Comparisons
README
[EntityFramework.Exceptions](Icon.png "EntityFramework.Exceptions")
EntityFramework.Exceptions
Handle database errors easily when working with Entity Framework Core. Supports SQLServer, PostgreSQL, SQLite and MySql
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.
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
Then 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)
{
optionsBuilder.UseExceptionProcessor();
}
}
You will now start getting different exception for different database errors. 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
});
try
{
demoContext.SaveChanges();
}
catch (UniqueConstraintException e)
{
//Handle exception here
}
}
*Note that all licence references and agreements mentioned in the EntityFramework.Exceptions README section above
are relevant to that project's source code only.