【问题标题】:Execute SQL before each db operation using EF Core 3.0使用 EF Core 3.0 在每个 db 操作之前执行 SQL
【发布时间】:2020-08-10 07:22:38
【问题描述】:

我想在使用 EF Core 3.0 的每个 DB 操作之前执行一个 sql 脚本。

一种方法是订阅 DB Connection 的 StateChange 事件。考虑到性能影响,有没有更好的方法来实现同样的效果?

【问题讨论】:

    标签: entity-framework-core ef-core-3.0


    【解决方案1】:

    您可以覆盖 DbContext SaveChanges 方法:

        public override int SaveChanges()
            {
               
               this.Database.ExecuteSqlRaw("Your Sql");
               var result = base.SaveChanges();
               return result;
            }
    

    【讨论】:

    • 嘿..但这仅适用于保存操作。选择语句呢?说 DbContext.Sample.FirstOrDefault(); --> 此语句将触发 DB 中的 Select qurey,但不会触发我的 SQL
    • 对于所有查询,我认为您应该使用DbConnectionInterceptor
    猜你喜欢
    • 2017-08-13
    • 1970-01-01
    • 1970-01-01
    • 2021-03-26
    • 2014-12-05
    • 1970-01-01
    • 2020-01-25
    • 2022-09-27
    • 1970-01-01
    相关资源
    最近更新 更多