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
Revise README.md for clarity and structure; update feature descriptions, enhance design goals, and add contributing guidelines to improve user understanding and engagement.
**.NET 8 / 9 / 10** · **EF Core 8.x / 9.x / 10.x** · **Works with any EF Core-supported database**
13
+
14
+
</div>
15
+
16
+
---
4
17
5
-
## What It Does
18
+
## Why EfCoreKit?
6
19
7
-
EfCoreKit plugs into your existing `DbContext` and adds capabilities that most .NET projects need but have to rewrite every time:
20
+
Every .NET project with EF Core ends up writing the same plumbing: soft delete filters, audit timestamps, tenant isolation, pagination helpers, bulk imports. EfCoreKit packages all of that into a single `AddEfCoreKit()` call.
8
21
9
-
-**Bulk Operations** — Insert, update, delete, or upsert thousands of records in one fast database call instead of N round trips
10
-
-**Soft Delete** — Mark records as deleted instead of removing them, with automatic global query filters so deleted rows are invisible by default
11
-
-**Audit Trail** — Auto-stamp `CreatedAt`, `CreatedBy`, `UpdatedAt`, `UpdatedBy` on every save, no manual code required
12
-
-**Pagination** — Offset-based and keyset/cursor-based pagination with a built-in `PagedResult<T>` model
13
-
-**Query Helpers** — `ExistsAsync`, `GetByIdAsync`, `GetByIdOrThrowAsync`, `WhereIf`, `OrderByDynamic` and more
14
-
-**Multi-Tenancy** — Automatic tenant filtering via global query filters so each tenant only sees their own data
-**Zero lock-in** — EfCoreKit uses standard EF Core interceptors and global query filters. Your entities stay plain C# classes, your `DbContext` stays a normal `DbContext`, and you can remove EfCoreKit at any time without rewriting your data layer.
25
+
-**Opt-in everything** — Enable only the features you need. Nothing runs unless you turn it on.
26
+
-**No custom ORM** — This is not a repository layer or a replacement for EF Core. It's a set of extensions that plug into the pipeline you already use.
18
27
19
-
| Database | Version |
20
-
|------------|---------|
21
-
| SQL Server | 2016+ |
22
-
| PostgreSQL | 12+ |
23
-
| MySQL | 8.0+ |
24
-
| SQLite | 3.x |
28
+
---
25
29
26
-
## Supported Platforms
30
+
## Features
27
31
28
-
| Platform | Version |
29
-
|----------|---------------|
30
-
| .NET | 8.0, 9.0, 10.0 |
31
-
| EF Core | 8.x, 9.x, 10.x |
32
+
All core features use EF Core interceptors and global query filters — they work with **any database** EF Core supports.
33
+
34
+
| Feature | Status | Description |
35
+
|---------|--------|-------------|
36
+
|**Soft Delete**| ✅ | Mark records as deleted with automatic global query filters |
37
+
|**Audit Trail**| ✅ | Auto-stamp `CreatedAt`, `CreatedBy`, `UpdatedAt`, `UpdatedBy` on every save |
38
+
|**Multi-Tenancy**| ✅ | Automatic tenant filtering so each tenant only sees their own data |
39
+
|**Pagination**| ✅ | Offset-based and keyset/cursor-based pagination with `PagedResult<T>`|
40
+
|**Query Helpers**| ✅ |`ExistsAsync`, `GetByIdOrThrowAsync`, `WhereIf`, `OrderByDynamic`, and more |
0 commit comments