EF Core Explorer
The EF Core Explorer (/efcore) lists every EF Core DbContext registered across your fleet, with its provider and database identity, how it relates to Wolverine, its entity map, and an on-demand pending-migrations probe.
Route: /efcore. It is the relational peer of the Document Store Explorer and the Event Store Explorer: EF Core persistence fits neither of those, so it gets its own surface.
Scope
Fleet-wide by default, grouped under a per-service heading with each service's context count. Narrow to one service with the global service selector in the header — the same control the other explorers read. When scoped, the per-service headings disappear (they would just repeat the header).
A ?service= deep link wins on arrival and is written back to the URL as you change scope, so the link you copy is the view you are looking at. A pick that names a service with no DbContext falls back to fleet-wide rather than showing nothing, and a scoped service that disconnects does the same.
Only services reporting at least one DbContext appear; if none do, the page reads "No services report an EF Core DbContext yet."
The DbContext card
Each context renders as a card — the same renderer the per-service surface uses, so the two never drift.
Badges
Along the header, next to the context's subject URI:
| Badge | Meaning |
|---|---|
| Wolverine / Plain | Whether Wolverine's envelope storage shares this context's connection. On Wolverine, domain events and outgoing messages publish atomically with SaveChangesAsync. On Plain, Wolverine is not driving this context's transaction. |
| Tenancy | The context's tenancy style; Single when it is not multi-tenanted. |
| Tx: | The transaction mode in force. |
| Domain events | The domain-events mode, when it is anything other than None. |
| Outbox: | The outbox integration, when it is anything other than None. |
| Wolverine-managed | Present when Wolverine owns this context's migrations. |
Identity and migrations
A description row carries the Provider, the Database name and the Server, plus a Pending migrations cell.
The pending-migrations count shown at rest comes from the service's reported summary. The Check pending migrations button asks the service to look right now — the result replaces the summary count and expands into a list of the actual migration names. This is a live probe against the service's database, not a cached value, which is what makes it worth clicking before a deploy.
Sagas
When the context stores sagas, its saga types render as chips. The Saga Explorer is the fleet-wide view of the same information.
Configuration
The generic configuration block renders the context's full options description, with per-property tooltips sourced from the underlying library's XML docs.
Entities
A table of the context's entities: Type, Table, Primary key, and index / foreign-key counts. Expanding a row shows its CLR type, full table name, primary key, concurrency token and discriminator, then two nested tables — every index (name, uniqueness, columns) and every foreign key (name, target table, key columns).
This is the mapping EF Core actually built, read back from the running service — so it answers "did my configuration take effect?" without attaching a debugger.
