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

Welcome to the Nevermore wiki! This is where we keep the documentation for Nevermore.

Nevermore logo

Nevermore is a micro-ORM that treats SQL Server like 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, so we built Nevermore and switched Octopus from RavenDB to 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.

😕 If you're wondering why we use Nevermore and not something else, see Why Nevermore?

For everything else, check the sidebar on the left.

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

Clone this wiki locally