Getting Started
EF Core covers the core of data access well, but some features are missing on some providers and others are
missing everywhere. SpatiaLite can’t run on iOS or Android, so spatial queries on SQLite stop at the desktop.
Temporal tables exist only on SQL Server. There is no outbox, no versioned seeding, and no safe way to give an
LLM access to a DbContext. These packages fill those gaps. Each one is independent, plugs in through EF’s own
extension points (interceptors, conventions, the migrations SQL generator, query translation), and never asks
you to derive from a base DbContext.
They are ported from Shiny DocumentDb, where every one of these features shipped first.
| GitHub |
Frameworks
.NET
.NET MAUI
ASP.NET
Operating Systems
Android
iOS
Windows
Packages
Section titled “Packages”| Package | Description |
|---|---|
Spatial, vector and full-text search for SQLite. Spatial uses NetTopologySuite with an R*Tree index instead of mod_spatialite, vectors use sqlite-vec, full-text uses FTS5. Works on iOS, Android, Mac Catalyst and desktop |
|
Transactional outbox: messages are enqueued in your SaveChanges transaction and delivered by a background processor with retries, dead letters and ordered partitions |
|
| Temporal history on SQLite, PostgreSQL, SQL Server and MySQL: History, AsOf, AsOfAll, Restore, JSON Patch diffs and per-actor audit trails | |
AI tools for Microsoft.Extensions.AI over a DbContext. Each entity has a scope that is always applied, so an LLM only sees the rows it is allowed to |
|
| An MCP server over the same scoped tools, plus schema and sample resources and prompts | |
| Versioned seeding: each seeder runs once, and runs again when you bump its version. It runs exactly once even when several app instances start together | |
| Aspire seed gate: an AppHost seeds a database on first setup or on a deliberate recreate, never on an ordinary restart |
Requirements
Section titled “Requirements”- .NET 10 and EF Core 10.
- The outbox, temporal history, AI tools and seeding support SQLite, PostgreSQL, SQL Server and MySQL
(MySQL via
MySql.EntityFrameworkCore, because Pomelo has no EF 10 build yet). TheSqlite.Mobilepackage targets SQLite only.
Where to start
Section titled “Where to start”- Building a MAUI app with maps, semantic search or a search box? Start with SQLite spatial.
- Publishing domain events from a web API? Start with the outbox.
- Need an audit trail or “what did this look like last Tuesday”? Start with temporal history.
- Letting an assistant query your data? Start with AI tools.


