LottaDB 3.0.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package LottaDB --version 3.0.0
                    
NuGet\Install-Package LottaDB -Version 3.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="LottaDB" Version="3.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="LottaDB" Version="3.0.0" />
                    
Directory.Packages.props
<PackageReference Include="LottaDB" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add LottaDB --version 3.0.0
                    
#r "nuget: LottaDB, 3.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package LottaDB@3.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=LottaDB&version=3.0.0
                    
Install as a Cake Addin
#tool nuget:?package=LottaDB&version=3.0.0
                    
Install as a Cake Tool

Build and Test NuGet

Logo

LottaDB

LottaDB is a .NET library that makes it easy to store any POCO in Azure Table Storage with full Lucene search, all with the goodness of LINQ.

  • A lotta bang for a little buck. Table Storage is the cheapest durable storage in Azure. LottaDB adds Lucene so you get rich queries without the rich pricing.
  • A lotta LINQ. GetManyAsync<T>() and Search<T>(), .Where(), .OrderBy() etc.
  • A lotta fidelity. Full JSON roundtrip. Lists, dictionaries, nested objects -- everything survives.
  • A lotta views. On<T> triggers build materialized views with plain C#.
  • A lotta tenants. One catalog per tenant with multiple databases. Natural isolation, simple cleanup.
  • A lotta nothing to operate. Table Storage is serverless. Lucene runs in-process.
  • A lotta schema safety. Schema changes are detected automatically -- Lucene index is rebuilt on startup.

Sweet spot

LottaDB is ideal for per-user or per-tenant workloads -- think user profiles, settings, activity feeds, personal knowledge bases, mailboxes, or per-project data. Thousands of objects per tenant, thousands of tenants per deployment.

Installation

dotnet add package LottaDB

Quick Example

// Define your model
public class Actor
{
    [Key]
    public string Username { get; set; } = "";

    [Queryable]
    public string DisplayName { get; set; } = "";

    public string AvatarUrl { get; set; } = "";
}

// Create a catalog and get a database
var catalog = new LottaCatalog("myapp", "<your Azure Storage connection string>");
var db = await catalog.GetDatabaseAsync("default", config =>
{
    config.Store<Actor>();
});

// Save
await db.SaveAsync(new Actor { Username = "alice", DisplayName = "Alice" });

// Point read
var actor = await db.GetAsync<Actor>("alice");

// Search (Lucene -- full-text search on [Queryable] properties)
var found = db.Search<Actor>()
    .Where(a => a.DisplayName == "Alice")
    .ToList();

Documentation

Full documentation is available in the wiki:

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (4)

Showing the top 4 NuGet packages that depend on LottaDB:

Package Downloads
LottaDB.Tiki

Tiki.Net integration for LottaDB — auto-extract rich metadata from blobs on upload.

LottaDB.Memory

In-memory storage provider for LottaDB. Adds UseMemory() extension method for fast unit testing with no disk I/O.

LottaDB.SQLite

SQLite storage provider for LottaDB. Adds UseSQLite() extension method for local development with a single portable .db file.

LottaDB.FileSystem

Filesystem storage provider for LottaDB. Adds UseFileSystem() extension method for local development with inspectable files on disk.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
4.0.2 84 7/4/2026
4.0.1 155 6/29/2026
4.0.0 166 5/27/2026
3.1.0 129 5/16/2026
3.0.0 112 5/13/2026
2.0.1 185 5/5/2026
2.0.0 204 5/5/2026
1.1.0 197 4/24/2026
1.0.2 198 4/16/2026
1.0.1 194 4/16/2026
1.0.0 194 4/16/2026