LottaDB 3.0.0
dotnet add package LottaDB --version 3.0.0
NuGet\Install-Package LottaDB -Version 3.0.0
<PackageReference Include="LottaDB" Version="3.0.0" />
<PackageVersion Include="LottaDB" Version="3.0.0" />
<PackageReference Include="LottaDB" />
paket add LottaDB --version 3.0.0
#r "nuget: LottaDB, 3.0.0"
#:package LottaDB@3.0.0
#addin nuget:?package=LottaDB&version=3.0.0
#tool nuget:?package=LottaDB&version=3.0.0
![]()
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>()andSearch<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:
- Architecture: Catalogs and Databases -- multi-tenancy, catalog settings
- Modeling: Keys and Queryable Properties -- attributes, fluent config, default search
- CRUD Operations -- Save, Get, Delete, Change, bulk operations
- Search and LINQ -- full-text search, LINQ queries
- Vector Similarity Search -- embeddings, .Similar() queries
- Dynamic Schemas -- JSON Schema types, runtime schema updates
- Object Metadata and Concurrency -- ETags, keys, cached JSON
- Blob Storage -- upload, download, metadata extraction
- Triggers and Materialized Views -- On<T> handlers, cascading views
- Schema Migration -- automatic index rebuilds
| Product | Versions 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. |
-
net10.0
- Azure.Data.Tables (>= 12.11.0)
- Azure.Storage.Blobs (>= 12.27.0)
- Iciclecreek.Lucene.Net.Linq (>= 4.8.5-beta00017)
- Lucene.Net.Store.Azure (>= 4.8.5-beta020)
- MimeMapping (>= 4.0.0)
- Ulid (>= 1.4.1)
-
net8.0
- Azure.Data.Tables (>= 12.11.0)
- Azure.Storage.Blobs (>= 12.27.0)
- Iciclecreek.Lucene.Net.Linq (>= 4.8.5-beta00017)
- Lucene.Net.Store.Azure (>= 4.8.5-beta020)
- MimeMapping (>= 4.0.0)
- System.IO.Pipelines (>= 10.0.7)
- System.Linq.Async (>= 7.0.1)
- Ulid (>= 1.4.1)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on LottaDB:
| Package | Downloads |
|---|---|
|
LottaDB.Tiki
Tiki.Net integration for LottaDB — auto-extract rich metadata from blobs on upload. |
GitHub repositories
This package is not used by any popular GitHub repositories.