OracleUnitOfWorkFactory¶
OracleUnitOfWorkFactory is the stateful Oracle implementation of UnitOfWorkFactoryBase. It opens a stateful NHibernate ISession against Oracle and wraps it in StatefulSessionStrategy, pairing it with OracleConfigurationFactory for configuration and OracleSessionHelper for engine-specific session helper behavior.
Purpose¶
- Overrides
CreateUnitOfWorkto open a stateful OracleISession(factory.OpenSession()) and wrap it inStatefulSessionStrategy, giving consumers full change-tracking, lazy-loading, and first-level cache behavior (contrast with BR-003, which governs the stateless factories). - Overrides
BuildSessionHelperto return anOracleSessionHelper, used for Oracle-specific ID/sequence handling in repository operations.
Context¶
- Namespace:
SAIF.Data.NHibernate - Assembly/package:
SAIF.Framework.Data.NHibernate
Public members¶
| Member | Signature | Purpose |
|---|---|---|
| OracleUnitOfWorkFactory() | public OracleUnitOfWorkFactory() |
Default constructor; wires an internal OracleConfigurationFactory for configuration resolution. |
Inherited public members¶
Members in this section are inherited from UnitOfWorkFactoryBase in SAIF.Framework.Data.NHibernate. They are available on this type through inheritance.
| Member | Signature | Purpose | Origin |
|---|---|---|---|
| GetUnitOfWork | NHibernateUnitOfWork GetUnitOfWork(string connectionString, int batchSize, bool showSql) |
Resolves a cached or new ISessionFactory, opens a stateful Oracle session via CreateUnitOfWork, and returns a NHibernateUnitOfWork. |
SAIF.Framework.Data.NHibernate — UnitOfWorkFactoryBase |
Behavioral notes¶
- Every unit of work produced by this factory uses full NHibernate change tracking; entities loaded through it are tracked for flush-time change detection (contrast with
OracleStatelessUnitOfWorkFactory).
Constraints and usage notes¶
- Requires an Oracle-compatible connection string; pairs with
OracleConfigurationFactoryinternally and cannot be redirected to a different engine's configuration factory.
Sources¶
Factories/OracleUnitOfWorkFactory.csFactories/UnitOfWorkFactoryBase.cs