J -*_*per 11 c# entity-framework try-catch
我把SaveChanges()方法放在try/catch块中,但我无法捕获SqlExeption.
try
{
db.SaveChanges();
}
catch (Exception ex)
{
}
Run Code Online (Sandbox Code Playgroud)
BRA*_*mel 13
SqlException是System.Data.SqlClient.SqlException类所以你不能捕获这个异常是正常的EntityFramework DbContext.SaveChanges Method()只能抛出以下异常,因为 MSDN
DbUpdateException
DbUpdateConcurrencyException
DbEntityValidationException
NotSupportedException
ObjectDisposedException
InvalidOperationException
Run Code Online (Sandbox Code Playgroud)
所以你可以做这样的事情
try
{
db.SaveChanges();
}
catch (DbUpdateException ex)
{
}
catch (DbUpdateConcurrencyException ex)
{
}
Run Code Online (Sandbox Code Playgroud)
更多
上面提到的例外是实体框架自定义异常,它们只EF负责何时以及如何触发它们Implementing custom exceptions
您无法捕获到SqlException它,因为它不是直接抛出的,而是被设置为的内部异常DbUpdateException。
实体框架是与数据库一起使用的抽象,它不直接依赖于任何数据库技术。
看看由抛出的异常 DbContext.SaveChanges()
| 归档时间: |
|
| 查看次数: |
11938 次 |
| 最近记录: |