Skip to content
Paul Stovell edited this page Apr 17, 2020 · 20 revisions
Nevermore logo

Nevermore is a micro-ORM that treats SQL Server as a document store.

"It's like Dapper, but with JSON"

Nevermore has been used in production inside of Octopus Deploy since version 3.0 (work started in 2014), when we switched from RavenDB to SQL Server. We enjoyed using RavenDB and wanted to keep many of the document concepts, but found it was easier for customers to run Octopus on top of SQL Server. Learn more about Why Nevermore.

Nevermore has some simple principles:

  • C# classes (Order, Customer, etc.) can be defined as documents
  • Documents can have nested properties, lists, etc. - anything that can be serialized as JSON
  • Each document gets its own database table (Orders, Customers, etc.)
  • The document ID is the primary key of the table. It uses Hi-Lo to generate string identifiers ("Order-123")
  • Some document properties can be stored as regular columns on the table, for faster querying
  • All other properties are stored in a JSON column

👋 If you're new to Nevermore, see the quickstart.

For everything else, check the sidebar on the right.

This documentation assumes you use Nevermore 12.0 onwards. If you use older versions of Nevermore, see the migration guide.