【发布时间】:2018-09-23 11:52:11
【问题描述】:
在我的 asp.net 核心 Web 应用程序中,我正在将异常记录到数据库中。到目前为止一切正常,但问题是当 try 块中的 DbConext.SaveChanges 抛出异常时,无法将异常记录到数据库中catch block 中的 DbConext.SaveChanges 也会抛出相同的异常。
这是我迄今为止尝试过的代码:
try
{
_unitOfWork.Repository<Product>().InsertEntity(product);
await _unitOfWork.SaveChangesAsync();//This throws exception due the model validation failure
}
catch (Exception exception)
{
ExceptionModel exceptionModel = new ExceptionModel();
using (MyDbContext dbContext = new MyDbContext())
{
await dbContext.ExceptionModels.AddAsync(exceptionModel);
await dbContext.SaveChangesAsync(); // Throws the same exception that was thrown in try block due to entity framework transaction
}
}
注意:我猜这个问题是由实体框架事务引起的。
请帮助我如何克服这种情况将异常记录到数据库中。谢谢!
【问题讨论】:
-
如果您告诉我们有关这些异常的详细信息...
-
假设您未能将更改保存到数据库,因为数据库服务器已关闭。现在您想在数据库中记录一些内容以指示第一次保存失败。你预计会发生什么?
-
抛出的exact异常是什么?
-
使用一些外部服务,例如 Exceptionless,不要尝试/捕获。将数据库错误记录到同一个数据库中听起来是个坏主意。
标签: c# entity-framework asp.net-core entity-framework-core