Tutorials Entity Framework Core Tutorial
SQLite Testing with EF Core
SQLite Testing with EF Core: free step-by-step lesson with examples, common mistakes, and interview tips — part of Entity Framework Core Tutorial on Toolliyo Academy.
On this page
Entity Framework Core Tutorial · Lesson 84 of 100
SQLite Testing with EF Core
Beginner ✓ → Intermediate ✓ → Advanced ✓ → Professional
Professional · 4 — Real projects · ~10 min · Module 9: Testing & Debugging
What is this?
SQLite provider lets EF Core integration tests run in CI without SQL Server — file or :memory: databases with closer relational behavior than InMemory.
Why should you care?
ShopNest GitHub Actions lacks LocalDB — SQLite tests FK and unique constraints cheaply on Linux agents.
See it live — copy this example
Paste into a .NET project with EF Core packages, then run with LocalDB/SQL Server (dotnet ef / dotnet run).
var conn = new SqliteConnection("DataSource=shopnest-test.db");
await conn.OpenAsync();
var options = new DbContextOptionsBuilder<ShopNestDbContext>()
.UseSqlite(conn)
.Options;
await using var db = new ShopNestDbContext(options);
await db.Database.EnsureDeletedAsync();
await db.Database.EnsureCreatedAsync();
db.Products.Add(new Product { Name = "A", Sku = "SKU1", Price = 10 });
await db.SaveChangesAsync();
What happened?
- Shared open connection keeps :memory: alive.
- EnsureCreated builds schema.
- SQLite enforces unique Sku if configured in Fluent — closer to production than InMemory.
Practice next
- Add Microsoft.EntityFrameworkCore.Sqlite test package.
- Open connection before EnsureCreated for in-memory SQLite.
- Adjust types if SQL Server-specific — decimal and DateTime usually fine.
- Run dotnet ef migrations against SQLite test project for parity.
- Use Respawn library to reset SQLite schema between tests.
Remember
SQLite suits CI integration tests. Enforces more relational rules than InMemory. Open connection for in-memory lifetime.
ShopNest Linux CI
Azure Pipelines Linux agent runs 40 SQLite integration tests on every push.
Outcome: FK violations fail tests; devs on Mac/Linux contribute without LocalDB.
Interview prep for this lesson
Practice these questions aloud after reading—each links to a full structured answer.
Sign in to ask a question or upvote helpful answers.
No questions yet — be the first to ask!