我脑子里一直有这个想法,但我仍然找不到任何答案。我的 DbContext 由 UnitOfWork 类处理。所以我有一个地方发生了保存更改,我正在捕获所有这些讨厌的异常并在一个地方处理它们。
但是,众所周知,DbContext 有时会在 SaveChanges() 方法之外的其他地方引发其他类型的异常。例如在实体化实体时。但这可能发生在很多地方,有时在每个 FirstOrDefault() 或 ToList() 调用上编写 try catch 块并捕获并重新抛出异常是开销。有时,此异常可能是 SQL 类型,即无法打开连接、EntityCommandExecutionException 或其他异常。
所以我想知道当异常发生时 DbContext 对象是否会触发任何事件,所以我可以订阅该事件并在这些场景中处理一些逻辑。:)