Ahtola
This page contains the latest information of the releases of RepoDb.Sqlite.Ahtola library.
View the NuGet package here or download it directly here.
RepoDb.Sqlite.Ahtola (v0.0.1-alpha1) - Preview
Released: October 8, 2026
New
First (alpha) release of the dedicated Ahtola provider for RepoDB, built on top of Devolutions.Ahtola.Data.Sqlite — the data provider for Ahtola, a pure managed, SQLite-compatible engine. Its SqliteConnection lives in the Ahtola.Data.Sqlite namespace. See Get Started with Ahtola.
What’s included
AhtolaBootstrap/AhtolaGlobalConfiguration.UseAhtola()— initializes RepoDB for use with theAhtola.Data.SqliteSqliteConnection(GlobalConfiguration.Setup().UseAhtola()), mapping the AhtolaDbSetting, AhtolaDbHelper and AhtolaStatementBuilder. See AhtolaBootstrap and AhtolaGlobalConfiguration.- AhtolaDbSetting — the SQLite dialect —
[/]-quoted identifiers,@parameter prefix, no default schema, no table hints, no nativeUPSERTkeyword (Merge/MergeAll run as an Exists-then-Insert/Update flow instead), and multi-statement command text support (IsMultiStatementExecutable = true,MultiStatementSeparator = ";"). - AhtolaStatementBuilder — generates SQLite-flavored SQL for every operation:
LIMIT/OFFSETpaging,last_insert_rowid()identity retrieval for Insert, aRETURNINGclause for InsertAll, andDELETE FROM ... ; VACUUMfor Truncate. - AhtolaDbHelper — schema/type discovery sourced from
pragma table_info(...), with the identity column detected from theCREATE TABLEtext insqlite_master(AUTOINCREMENTor anINTEGER PRIMARY KEY), andSELECT last_insert_rowid()for identity retrieval. - Resolvers — DbTypeToAhtolaStringNameResolver, AhtolaConvertFieldResolver and AhtolaDbTypeNameToClientTypeResolver.
- Parameter attributes mirroring
SqliteParameter, settable per entity property: SqliteType. - Targets .NET 8, .NET 9 and .NET 10.
Known limitations (v1)
Devolutions.Ahtola.Data.Sqliteis a pre-1.0 driver (v0.9.0), and the provider inherits whatever SQLite compatibility gaps it has.- No bulk operations package exists for this provider.
- Merge/MergeAll are not a single native
MERGEstatement (SQLite has none); they run as an Exists-then-Insert/Update flow. - AhtolaDbTypeNameToClientTypeResolver resolves
date,datetime,time,booleanandcharcolumns tostring, anddecimal/numericcolumns tolong— the same mapping as the Microsoft.Data.Sqlite-based SQLite provider.
Bumps
- Referenced the
RepoDbpackagev1.17.0-alpha3. - References the
Devolutions.Ahtola.Data.Sqlitepackagev0.9.0.