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
Copy file name to clipboardExpand all lines: README.md
+7-12Lines changed: 7 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -27,7 +27,7 @@ All connection types live in the `ActiveForge` namespace, so a single `using Act
27
27
### 🗂 Entities & Mapping
28
28
-**Active Record pattern** — entities carry both data and persistence behaviour; no separate repository class required
29
29
-**Type-safe field wrappers** — `TString`, `TInt`, `TDecimal`, `TPrimaryKey`, `TForeignKey`, and 25+ more; each tracks null/loaded state and supports implicit conversion
30
-
-**Polymorphic mapping** — map abstract base types to concrete subtypes via `FactoryBase`
30
+
-**Polymorphic mapping** — map abstract base types to concrete subtypes via `BaseFactory`
31
31
-**Custom field mappers** — implement `IDBFieldMapper` for non-standard type conversions
32
32
-**Field encryption** — transparent encrypt/decrypt via `[Encrypted]` attribute
33
33
@@ -40,12 +40,12 @@ All connection types live in the `ActiveForge` namespace, so a single `using Act
-**Unit of Work** — `IUnitOfWork`, `UnitOfWorkBase`, provider-specific implementations, `With.Transaction`, `[Transaction]` attribute, Castle DynamicProxy interceptor. `[Transaction]`— wraps a service method in a`IUnitOfWork` transaction via Castle DynamicProxy; combine with `[ConnectionScope]` for the full open → begin → commit → close lifecycle
44
-
-**Connection-level lifecycle** — set `conn.UnitOfWork = uow` once; every write operation (`Insert`, `Update`, `Delete`, `ProcessActionQueue`, `ExecStoredProcedure`) automatically opens the connection, begins a transaction, commits, and closes — no proxy required; coordinates transparently with `[ConnectionScope]` via `IsOpen`. `[ConnectionScope]` — marks service methods/classes where the `DataConnection` is opened before and closed after; nested calls share one connection via `IsOpen` state.
43
+
-**Unit of Work** — `IUnitOfWork`, `BaseUnitOfWork`, provider-specific implementations (`SqlServerUnitOfWork`, `PostgreSQLUnitOfWork`, `MongoUnitOfWork`, `SQLiteUnitOfWork`), `With.Transaction`, `[Transaction]` attribute, Castle DynamicProxy interceptor. `[Transaction]` wraps a service method in an`IUnitOfWork` transaction; the UoW opens the connection before the first `CreateTransaction()` call and closes it after the outermost commit or rollback.
44
+
-**Connection-level lifecycle** — set `conn.UnitOfWork = uow` once; every write operation (`Insert`, `Update`, `Delete`, `ProcessActionQueue`, `ExecStoredProcedure`) automatically opens the connection, begins a transaction, commits, and closes — no proxy required.
-**Auto-scan registration** — `AddActiveForgeSqlServer(...).AddServices(assembly)` discovers all `IService` implementations and registers them as interface-proxied scoped services in one call. `IService` marker — implement on any service class for automatic discovery and proxy registration. `IActiveForgeBuilder` — fluent builder returned by all `AddTurquoise*` methods; chain `.AddServices()`, `.AddService<I, T>()` for granular control.
48
+
-**Auto-scan registration** — `AddActiveForgeSqlServer(...).AddServices(assembly)` discovers all `IService` implementations and registers them as interface-proxied scoped services in one call. `IService` marker — implement on any service class for automatic discovery and proxy registration. `IActiveForgeBuilder` — fluent builder returned by all `AddActiveForge*` methods; chain `.AddServices()`, `.AddService<I, T>()` for granular control.
49
49
50
50
---
51
51
@@ -213,7 +213,6 @@ open → begin → commit → close with no virtual methods or framework couplin
213
213
214
214
```csharp
215
215
usingActiveForge;
216
-
usingActiveForge.Attributes;
217
216
usingActiveForge.Transactions;
218
217
219
218
// ── Interface (consumed by controllers / other services)
@@ -229,11 +228,9 @@ public class OrderService : IOrderService, IService
0 commit comments