Skip to content

Compatibility

What stays the same between TenantGuard releases, so you can depend on it.

These are the public contract (0006):

  • the rule IDs TGM001 to TGM010 and the analyzer IDs TG001 to TG004, and their default severities;
  • every message, word for word, as the rules, analyzers, exceptions and logging pages give it: messages are deterministic, so you can match them in logs and alerts;
  • the option names in Options and the .editorconfig keys;
  • the exception types;
  • the public API in each package’s PublicAPI.Shipped.txt.

Changing any of them is a breaking change, and needs an accepted architecture decision first.

The current releases are 0.1.0 previews (0.1.0-preview.N), until EF Core 11 is stable (0016). The changelog lists every change between releases.

The net10.0 build runs on EF Core 10, the net11.0 build on EF Core 11, with any provider (0010). The analyzers load in any compiler on Roslyn 4.8.0 or later, Visual Studio 2022 included.

EF Core 10 and 11 can’t generate a compiled model for a model with a query filter: dotnet ef dbcontext optimize stops with “query filters are not supported”. Native AOT needs a compiled model, so an app that isolates tenants with query filters can’t run under Native AOT yet, with or without TenantGuard. Behavior pin 9 checks it on each EF Core version, and TenantGuard will add what a compiled model needs once EF Core supports it (0027).