AwadyLab.EFCatalyst.Sqlite
1.0.2
dotnet add package AwadyLab.EFCatalyst.Sqlite --version 1.0.2
NuGet\Install-Package AwadyLab.EFCatalyst.Sqlite -Version 1.0.2
<PackageReference Include="AwadyLab.EFCatalyst.Sqlite" Version="1.0.2" />
<PackageVersion Include="AwadyLab.EFCatalyst.Sqlite" Version="1.0.2" />
<PackageReference Include="AwadyLab.EFCatalyst.Sqlite" />
paket add AwadyLab.EFCatalyst.Sqlite --version 1.0.2
#r "nuget: AwadyLab.EFCatalyst.Sqlite, 1.0.2"
#:package AwadyLab.EFCatalyst.Sqlite@1.0.2
#addin nuget:?package=AwadyLab.EFCatalyst.Sqlite&version=1.0.2
#tool nuget:?package=AwadyLab.EFCatalyst.Sqlite&version=1.0.2
AwadyLab.EFCatalyst.Sqlite
SQLite support for AwadyLab.EFCatalyst: sortable
DateTimeOffset storage, busy/locked detection and SQLite SQL for the EFCatalyst migration operations.
Overview
The package registers, in EF Core's internal service provider, a SQLite dialect (busy/locked detection, seed-history DDL) and a migrations SQL generator that translates the EFCatalyst migration operations and delegates everything else to the SQLite provider's own generator.
Key Highlights
- Sortable
DateTimeOffset: values are stored as a sortable integer, so they order and compare correctly in SQL. On by default (StoreDateTimeOffsetAsBinary). - Concurrency: the database does not maintain
IRowVersion, so the save pipeline's concurrency step rotates the token; a conflict throwsEFCatalystConcurrencyException. - Busy/Locked Detection:
SQLITE_BUSYandSQLITE_LOCKEDare recognised, soDeadlockRetryInterceptorcan retry the command (outside transactions). - Migration Helpers in SQLite SQL: views, upserts, soft-delete and timestamp triggers, and filtered indexes.
SQLite ignores schemas (as EF Core does) and has no SQL-defined functions: CreateOrReplaceFunction and
DropFunctionIfExists throw NotSupportedException. Register a .NET function on the connection
(SqliteConnection.CreateFunction) and map it with HasDbFunction instead.
Installation
dotnet add package AwadyLab.EFCatalyst.Sqlite
Quickstart
services.AddDbContext<ShopContext>((sp, o) => o
.UseSqlite(connectionString)
.UseEFCatalystSqlite() // or UseEFCatalystSqlite(s => s.StoreDateTimeOffsetAsBinary = false)
.UseEFCatalystInterceptors(sp));
If you replace IMigrationsSqlGenerator yourself, derive from the EFCatalyst one or call
UseEFCatalystSqlite() after your replacement.
License
Proprietary — see the core package, AwadyLab.EFCatalyst.
Full documentation lives in the core package's repository (README.md).
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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
- AwadyLab.EFCatalyst (>= 1.0.2)
- Microsoft.EntityFrameworkCore.Sqlite (>= 10.0.12)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.