You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
**High-performance SQLite for .NET: Eliminate `database is locked` errors with 10x faster bulk inserts and true parallel reads.** EntityFrameworkCore.Sqlite.Concurrency is the definitive Entity Framework Core extension that transforms SQLite into a robust, high-throughput database for multi-threaded .NET applications.
8
+
## 🚀 Solve SQLite Concurrency & Performance
9
9
10
-
## 🚀 The Performance & Reliability Upgrade Your App Needs
10
+
Tired of `"database is locked"` (`SQLITE_BUSY`) errors in your multi-threaded .NET app? Need to insert data faster than the standard `SaveChanges()` allows?
11
11
12
-
Standard EF Core with SQLite struggles with concurrency and performance: frequent locking errors, slow bulk operations, and read contention under load. Our extension solves all three problems simultaneously.
12
+
**EntityFrameworkCore.Sqlite.Concurrency** is a drop-in add-on to `Microsoft.EntityFrameworkCore.Sqlite` that adds **automatic write serialization** and **performance optimizations**, making SQLite robust and fast for production applications.
13
13
14
-
**Why EntityFrameworkCore.Sqlite.Concurrency delivers superior performance:**
|**❌ Complex Retry Logic:** You need to build resilience yourself. |**✅ Built-In Resilience:** Exponential backoff retry and robust connection management. |
34
+
|**❌ High Memory Usage:** Large operations are inefficient. |**✅ Optimized Performance:** Streamlined operations for speed and lower memory overhead. |
Run your app. Concurrent writes are now serialized automatically, and reads are parallel. Your existing DbContext, models, and LINQ queries work unchanged.
A: Through intelligent batching, optimized transaction management, and reduced database round-trips. We process data in optimal chunks and minimize overhead at every layer.
167
148
168
-
### Factory Pattern for Maximum Control
149
+
Q: Will this work with my existing queries and LINQ code?
150
+
A: Absolutely. Your existing query patterns, includes, and projections work unchanged while benefiting from improved read concurrency and reduced locking.
169
151
170
-
```csharp
171
-
// Create performance-optimized contexts on demand
Q: Is there a performance cost for the thread safety?
153
+
A: Less than 1ms per write operation—negligible compared to the performance gains from optimized bulk operations and parallel reads.
182
154
183
-
## ❓ Performance & Reliability FAQ
155
+
Q: How does memory usage compare to standard EF Core?
156
+
A: Our optimized operations use significantly less memory, especially for bulk inserts and large queries, thanks to streaming and intelligent caching strategies.
184
157
185
-
### Q: How does it achieve 10x faster bulk inserts?
186
-
**A:** Through intelligent batching, optimized transaction management, and reduced database round-trips. We process data in optimal chunks and minimize overhead at every layer.
158
+
Q: Can I still use SQLite-specific features?
159
+
A: Yes. All SQLite features remain accessible while gaining our performance and concurrency enhancements.
187
160
188
-
### Q: Will this work with my existing queries and LINQ code?
189
-
**A:** Absolutely. Your existing query patterns, includes, and projections work unchanged while benefiting from improved read concurrency and reduced locking.
161
+
##Migration: From Slow to Fast
162
+
Upgrade path for existing applications:
190
163
191
-
### Q: Is there a performance cost for the thread safety?
192
-
**A:** Less than 1ms per write operation—negligible compared to the performance gains from optimized bulk operations and parallel reads. Most applications see net performance improvements immediately.
### Q: How does memory usage compare to standard EF Core?
195
-
**A:** Our optimized operations use significantly less memory, especially for bulk inserts and large queries, thanks to streaming and intelligent caching strategies.
166
+
Update DbContext Configuration → Change UseSqlite() to UseSqliteWithConcurrency()
196
167
197
-
### Q: Can I still use SQLite-specific features?
198
-
**A:** Yes. All SQLite features remain accessible while gaining our performance and concurrency enhancements.
168
+
Replace Bulk Operations → Change loops with SaveChanges() to BulkInsertSafeAsync()
5.**Monitor Performance Gains** → Watch your operation times drop significantly
174
+
## 🏗️ System Requirements
175
+
.NET 8.0+ (.NET 10.0+ recommended for peak performance)
209
176
210
-
## 🛠️ System Requirements
177
+
Entity Framework Core 8.0+
211
178
212
-
-**.NET 8.0+** (.NET 10.0+ recommended for peak performance)
213
-
-**Entity Framework Core 8.0+**
214
-
-**SQLite 3.35.0+**
179
+
SQLite 3.35.0+
215
180
216
181
## 📄 License
217
-
218
182
EntityFrameworkCore.Sqlite.Concurrency is licensed under the MIT License. Free for commercial use, open source projects, and enterprise applications.
219
183
220
-
---
221
-
222
-
**Stop compromising on SQLite performance.** Get enterprise-grade speed and 100% reliability with EntityFrameworkCore.Sqlite.Concurrency—the only EF Core extension that fixes SQLite's limitations while unlocking its full potential.
223
-
184
+
Stop compromising on SQLite performance. Get enterprise-grade speed and 100% reliability with EntityFrameworkCore.Sqlite.Concurrency—the only EF Core extension that fixes SQLite's limitations while unlocking its full potential.
0 commit comments