Skip to content
Mirko Da Corte edited this page Sep 8, 2026 · 27 revisions

Etherna Scrinium

Etherna Scrinium (Scrinium for short) is an Object-Documental Mapper (ODM) for MongoDB on .NET, built for ASP.NET Core applications. It maps your domain objects to documents and takes care of the hard parts of a documental data layer for you: denormalized references between documents with automatic dependency updates, versioned document schemas in the same collection, and data migrations.

Version. This wiki documents the Scrinium 0.25 line, released on 2026-09-03 — the first supported line. See Versions for status.

Why Scrinium

Document databases are fast because they let you denormalize — store together what you read together, and read a whole aggregate in a single query without joins. The price is usually paid at the application layer: when a denormalized value changes you must find and update every copy, and when your schema evolves you must migrate or guard every stored document.

Scrinium removes that price. You model a plain domain, declare how it serializes, and the framework keeps denormalized copies in sync, serves versioned schemas side by side, and migrates documents on your terms — so you get denormalized-document efficiency with a clean domain model.

Feature highlights

  • Document relations with fine-grained control over denormalized (summary) members
  • Auto-creation of linked models never persisted before, saved with complete references
  • Transparent lazy loading of members not yet loaded from referenced documents
  • Automatic update of denormalized data across referencing documents
  • Repositories organized under database contexts (unit of work)
  • ACID transactions with automatic enlistment of repository operations
  • Multiple versioned schemas per collection, with configurable migrations between them
  • Per-scope identity map and member-level change tracking
  • Server side resource locks on your own resources, exclusive or shared, with background-renewed leases
  • Asynchronous maintenance tasks via Hangfire (or your own task runner)
  • First-class dependency injection, ASP.NET Core and Hangfire integration
  • Optional admin dashboard to monitor and run migrations

Status. Scrinium is pre-beta: features are still being added and the public API can change between minor versions.

Start here

The full page set is in the sidebar, grouped by topic.

Resources

Clone this wiki locally