dotnet-daily-tips

065 - Interceptors

One of the latest concepts added to Entity Framework is interceptors. What they offer for developers is the ability to modify the database command before it is sent to the database.

Interceptors can define several methods, and at each level, we can make specific modifications. On the DbCommandInterceptor, the list of methods is quite long:

All the methods are virtual, so we can override only the ones we are interested in. Additionally, there’s an ISaveChangesInterceptor that allows us to control SaveChanges methods.

Have you been using interceptors in your projects?

Docs πŸ“‘: https://learn.microsoft.com/en-us/ef/core/logging-events-diagnostics/interceptors

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
    // βœ… Add interceptors
    optionsBuilder.AddInterceptors(new SaveChangesInterceptor());
    base.OnConfiguring(optionsBuilder);
}