Sébastien Rigaux

.NET multi-tenant : séparer les données par schéma SQL Server — partie 2/4

Consulter la ressourceEN

barretblake.dev

Cette partie 2/4 montre comment isoler les données de chaque tenant dans son propre schéma SQL Server, sans filtre global ni colonne TenantId obligatoire. Le modèle EF Core retrouve ainsi une clé primaire simple, tandis que la frontière d’isolation est portée par la structure de la base.

Le changement central tient au cache du modèle : OnModelCreating ne s’exécute qu’une fois par modèle. Il faut intégrer le schéma à la clé via IModelCacheKeyFactory, faute de quoi EF Core peut réutiliser celui du premier tenant. L’article détaille aussi le provisionnement et les migrations par schéma, ainsi que la validation stricte des noms de schéma interpolés dans le SQL.

Visuel intitulé « Multi-Tenant .NET, Part 2 — Shared Database with Schema Separation » : un panneau « House for Rent », un emblème circulaire avec deux épées et un portrait illustré.