Skip to content

Latest commit

 

History

History
25 lines (17 loc) · 1.18 KB

File metadata and controls

25 lines (17 loc) · 1.18 KB

ADR-0019: Single CceDbContext extending IdentityDbContext

Context

The CCE platform needs ASP.NET Identity tables (users, roles, claims) AND ~33 CCE-specific entities to coexist in one schema with one transactional boundary. Two patterns existed: split DbContext (IdentityDbContext + CceDbContext) sharing a connection, or single DbContext extending IdentityDbContext.

Decision

CceDbContext : IdentityDbContext<User, Role, Guid>. All 36 entities live in one DbContext, one connection, one SaveChanges transaction.

Consequences

Positive

  • Single migration, single transaction — atomic schema across Identity + CCE.
  • AuditingInterceptor sees every change (Identity + CCE) in one ChangeTracker.
  • Less DI plumbing.

Negative

  • Domain layer references Microsoft.Extensions.Identity.Stores (User extends IdentityUser). Trade-off accepted in ADR-0014 (Clean Architecture exemption).
  • CceDbContext is a large class (35 DbSets). Mitigated by per-entity IEntityTypeConfiguration<T> files.