-
Notifications
You must be signed in to change notification settings - Fork 4
Home
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.25line, released on 2026-09-03 — the first supported line. See Versions for status.
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.
- 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.
- Packages and feeds — which NuGet package to install
-
First steps — build a small app end to end with the
AspNetCoreSample - Startup and configuration — register Scrinium in ASP.NET Core and set its options
The full page set is in the sidebar, grouped by topic.
- Source code: https://github.com/Etherna/scrinium · sample:
samples/AspNetCoreSample - Issue tracker (Jira SCR): https://etherna.atlassian.net/projects/SCR
- Underlying driver: Scrinium uses the Etherna MongoDB driver fork (
Etherna.MongoDB.*); for driver-level topics see the MongoDB C# Driver docs - License: GNU LGPL-3.0-or-later · Questions: info@etherna.io
Scrinium — source · issues (SCR) · GNU LGPL-3.0 · info@etherna.io
Getting started
Core concepts
Working with data
Serialization & mapping
Operations & maintenance
Advanced & reference