CacheOrchestrator.EFCore.Invalidation 3.0.0-beta.5

This is a prerelease version of CacheOrchestrator.EFCore.Invalidation.
dotnet add package CacheOrchestrator.EFCore.Invalidation --version 3.0.0-beta.5
                    
NuGet\Install-Package CacheOrchestrator.EFCore.Invalidation -Version 3.0.0-beta.5
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="CacheOrchestrator.EFCore.Invalidation" Version="3.0.0-beta.5" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="CacheOrchestrator.EFCore.Invalidation" Version="3.0.0-beta.5" />
                    
Directory.Packages.props
<PackageReference Include="CacheOrchestrator.EFCore.Invalidation" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add CacheOrchestrator.EFCore.Invalidation --version 3.0.0-beta.5
                    
#r "nuget: CacheOrchestrator.EFCore.Invalidation, 3.0.0-beta.5"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package CacheOrchestrator.EFCore.Invalidation@3.0.0-beta.5
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=CacheOrchestrator.EFCore.Invalidation&version=3.0.0-beta.5&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=CacheOrchestrator.EFCore.Invalidation&version=3.0.0-beta.5&prerelease
                    
Install as a Cake Tool

CacheOrchestrator.EFCore.Invalidation

CacheOrchestrator is a multi-tier cache coordination and synchronized invalidation library for .NET.

This package hooks EF Core SaveChanges: map a CLR type to (domain, entityKind); after the owning transaction commits, matching entity tags are purged through ICacheOrchestratorInvalidator.

Install

dotnet add package CacheOrchestrator.EFCore.Invalidation --prerelease

Configuration

Domain policy (same as the rest of CacheOrchestrator). Optional interceptor options:

{
  "Cache": {
    "Domains": {
      "catalog": {
        "Version": "1",
        "DataCache": { "TtlSeconds": 300 },
        "OutputCache": { "TtlSeconds": 60 }
      }
    },
    "EFCore": {
      "Invalidation": {
        "Enabled": true
      }
    }
  }
}

Usage

dotnet add package CacheOrchestrator --prerelease
dotnet add package CacheOrchestrator.EFCore.Invalidation --prerelease
builder.Services.AddCacheOrchestrator(builder.Configuration);
builder.Services.AddCacheOrchestratorEfCoreInvalidation(builder.Configuration);

builder.Services.AddDbContext<AppDbContext>((sp, opt) =>
{
    opt.UseSqlServer(connectionString);
    opt.AddCacheOrchestratorInvalidation(sp);
});

// In OnModelCreating (or Map<T> / [CacheEntity]):
modelBuilder.Entity<Product>().CacheInvalidate("catalog", "products");

Tracked SaveChanges captures generated ids after a successful save. A save without an enclosing transaction invalidates immediately; explicit EF transactions defer and coalesce invalidation until Commit / CommitAsync, and ambient transactions defer until their completion notification. Rollbacks discard pending invalidation. ExecuteUpdate and ExecuteDelete bypass the change tracker and require explicit invalidation.

Documentation

License

MIT — LICENSE.md

Commit externally supplied relational transactions through EF's IDbContextTransaction wrapper so the transaction interceptor observes their outcome. A raw ADO.NET commit outside EF requires explicit invalidation after the owner confirms the commit. Delivery is best effort and process local; use an application outbox when invalidation must survive a process failure. See the transaction contract.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
3.0.0-beta.5 74 9/8/2026
3.0.0-beta.4 70 9/7/2026
3.0.0-beta.3 81 8/30/2026
3.0.0-beta.2 73 8/25/2026
3.0.0-beta.1 75 8/25/2026
2.1.0 138 8/15/2026 2.1.0 is deprecated because it is no longer maintained.
2.0.0 134 8/13/2026 2.0.0 is deprecated because it is no longer maintained.

CacheOrchestrator 3.0.0-beta.5

v3 beta.5 fixes authenticated cache-key collisions, HTTP representation identity, entity-footprint tag publication, EF transaction-aware invalidation, and Redis backend isolation. Runtime settings update atomically, cluster commands report incomplete execution, and queued Edge purges retain their original destinations. Public API contracts, documentation, regression coverage, and package/analyzer checks are aligned for 3.0.

Full notes: https://github.com/CacheOrchestrator/CacheOrchestrator/releases/tag/v3.0.0-beta.5