RizeDb 1.6.5

.NET Standard 2.0
Install-Package RizeDb -Version 1.6.5
dotnet add package RizeDb --version 1.6.5
<PackageReference Include="RizeDb" Version="1.6.5" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add RizeDb --version 1.6.5
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: RizeDb, 1.6.5"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install RizeDb as a Cake Addin
#addin nuget:?package=RizeDb&version=1.6.5

// Install RizeDb as a Cake Tool
#tool nuget:?package=RizeDb&version=1.6.5
The NuGet Team does not provide support for this client. Please contact its maintainers for support.


RizeDb has a document-oriented implementation that allows for the storing, indexing and retrieving of documents. Documents are not stored into tables and have very little structure to them.

RizeDb's document store requires no schema and document values can change types without requiring the database to update all existing data. By default, nearly all document data is indexed so that finding data is fast and easy.


The first step to creating a document store is simply to instantiate the DocumentStore object with a stream.

using(var stream = new MemoryStream())
   using(var documentStore = new RizeDb.DocumentStore(stream))
      //Code goes here

Once your document store is created, create POCO classes.

public class Order
    public long Id { get; set; } //This is the only required field
    public string Number { get; set; }
    public DateTime Date { get; set; }
    public List<OrderItem> OrderItems = { get; set; }

public class OrderItems
    public string ItemName { get; set; }
    public decimal Price { get; set; }
    public int Quantity { get; set; }

Now that your POCO classes are created, instantiate and fill an Order object with data.

var order = new Order()
    Numer = "1001",
    Date = DateTime.Now,
    OrderItems = new List<OrderItem>();

order.OrderItems.Add(new OrderItem()
    ItemName = "Sun Glasses",
    Price = 19.99,
    Quantity = 1

order.OrderItems.Add(new OrderItem()
    ItemName = "Flashlight",
    Price = 10.50,
    Quantity = 4

Once your order is ready to be stored simply add it to a document collection.

documentStore.Store("Orders", order);

This will store the order object and its' items as one document into a collection named "Orders". If the collection "Orders" does not already exist it will be created. Now that the order document has been stored into a collection it will have a unique value assigned to the Id property of order. This The Id value is what will be used to retrieve, update or delete the order in the future.

Retrieving your document is as simple as requesting it by Id.

var order = documentStore.Retreive<order>("Orders", 1 /*Assuming the document Id is 1*/);

The retrieve method will create an Order object and its' OrderItem objects and populate them with the exact same data that was stored.

You can also lookup documents by values.

var orders = documentStore.Retreive<order>("Orders", o => o.Number == "1001");

This call to the Retrieve method will create an IEnumerable object containing all Orders objects with the Number "1001".

You can also search by child object values.

var orders = documentStore.Retreive<order>("Orders", o => o.OrderItems.Any(i => i.ItemName == "Flashlight"/);

Again you will get an IEnumerable object containing all orders that have an order item with the ItemName of "Flashlight".

You can even use a different object to retrieve data.

public class OrderHeader
    public long Id { get; set; }
    public string Number { get; set; }

var orderHeader = documentStore.Retreive<OrderHeader>("Orders", 1 /*Assuming the document Id is 1*/);

This call will create and return an OrderHeader object with the Number property set to "1001".

And finally you can change the type of the property and the values will still get set as long as they are compatible.

public class OrderHeader2
    public long Id { get; set; }
    public int Number { get; set; } //<-- This was changed to an Int32

var orderHeader2 = documentStore.Retreive<OrderHeader2>("Orders", 1 /*Assuming the document Id is 1*/);

Now the newly create OrderHeader2 will have an integer value for the Number property set to 1001. Changing types will work for most types, but some are not compatible and will either be null or default when the document is retrieved.

Visit vizeotech.com for full documentation.


Product Versions
.NET net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows
.NET Core netcoreapp2.0 netcoreapp2.1 netcoreapp2.2 netcoreapp3.0 netcoreapp3.1
.NET Standard netstandard2.0 netstandard2.1
.NET Framework net461 net462 net463 net47 net471 net472 net48
MonoAndroid monoandroid
MonoMac monomac
MonoTouch monotouch
Tizen tizen40 tizen60
Xamarin.iOS xamarinios
Xamarin.Mac xamarinmac
Xamarin.TVOS xamarintvos
Xamarin.WatchOS xamarinwatchos
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on RizeDb:

Package Downloads

Supporting assembly for Environment Vault.


Companion assemblies for Environment Vault

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.6.5 213 7/20/2021
1.6.0 170 5/16/2021
1.5.0 219 4/11/2021
1.4.0 238 4/8/2021
1.3.5 152 3/21/2021
1.3.0 385 9/16/2020
1.2.0 254 9/10/2020
1.1.0 321 8/19/2020
1.0.2 300 7/9/2020
1.0.1 377 7/26/2019
1.0.0 395 7/24/2019