【发布时间】:2019-06-05 07:23:46
【问题描述】:
我想覆盖
public virtual Task<int> SaveChangesAsync(CancellationToken cancellationToken = default);
我的解决方案中的任何DbContext 全局并将其更改为
public virtual Task<MyDatabaseReturnModel> SaveChangesAsync(CancellationToken cancellationToken = default);
这可能吗?
【问题讨论】:
-
为什么?你想做什么?
MyDatabaseReturnModel来自哪里?SaveChanges应该保存更改,而不是执行额外的查询。 -
这看起来像XY problem。你有一个问题 X 并假设 Y 是解决方案。当这不起作用时,你问的是 Y,而不是实际的问题 X。你想解决的实际问题是什么?
-
不是 XY 问题,谢谢。
-
所以它是一个XY问题。您想要记录异常。这是您的日志库 的工作,而不是实体框架。实际上,如果您使用 .NET Core 的日志基础架构that may work already,您可以配置 EF Core 以将其消息记录到您的日志提供程序
-
除此之外,异常就像熔断的保险丝。您不能只是记录它们而忘记它们。它们应该在有意义的最高级别进行处理。如果保存到数据库失败,那么用户在此之前所做的所有操作也应该会失败。
标签: c# .net ef-core-2.0