---
title: SAIF.Framework.Data.NHibernate API reference
summary: Index of all public types in this library.
status: draft
owner: Framework
last_reviewed: 2026-09-15
library: SAIF.Framework.Data.NHibernate
reference_type: package
---

# SAIF.Framework.Data.NHibernate API reference

This page lists all public types exposed by `SAIF.Framework.Data.NHibernate`. Each type links to its full API reference page. Root namespace: `SAIF.Data.NHibernate`; assembly name `SAIF.Framework.Data.NHibernate`.

## Types

| Type | Kind | Namespace | Purpose |
| --- | --- | --- | --- |
| [IConfigurationFactory](SAIF.Data.NHibernate/IConfigurationFactory.md) | Interface | `SAIF.Data.NHibernate` | Seam contract for building an engine-specific NHibernate `Configuration`. |
| [ConfigurationFactoryBase](SAIF.Data.NHibernate/ConfigurationFactoryBase.md) | Class | `SAIF.Data.NHibernate` | Caches and builds `PersistenceConfiguration` instances keyed by connection string; delegates engine-specific construction to subclasses. |
| [OracleConfigurationFactory](SAIF.Data.NHibernate/OracleConfigurationFactory.md) | Class | `SAIF.Data.NHibernate` | Builds an Oracle-targeted NHibernate configuration (`OracleDataClientConfiguration.Oracle10`, `Oracle.config`). |
| [SqlServerConfigurationFactory](SAIF.Data.NHibernate/SqlServerConfigurationFactory.md) | Class | `SAIF.Data.NHibernate` | Builds a SQL Server-targeted NHibernate configuration (`MsSqlConfiguration.MsSql2008`, `SqlServer.config`). |
| [IUnitOfWorkFactory](SAIF.Data.NHibernate/IUnitOfWorkFactory.md) | Interface | `SAIF.Data.NHibernate` | Seam contract for obtaining a `NHibernateUnitOfWork` for a connection string. |
| [UnitOfWorkFactoryBase](SAIF.Data.NHibernate/UnitOfWorkFactoryBase.md) | Class | `SAIF.Data.NHibernate` | Caches `ISessionFactory` instances and builds `NHibernateUnitOfWork` instances; delegates engine/session-strategy construction to subclasses. |
| [OracleUnitOfWorkFactory](SAIF.Data.NHibernate/OracleUnitOfWorkFactory.md) | Class | `SAIF.Data.NHibernate` | Builds units of work using a stateful Oracle NHibernate session. |
| [SqlServerUnitOfWorkFactory](SAIF.Data.NHibernate/SqlServerUnitOfWorkFactory.md) | Class | `SAIF.Data.NHibernate` | Builds units of work using a stateful SQL Server NHibernate session. |
| [PersistenceConfiguration](SAIF.Data.NHibernate/PersistenceConfiguration.md) | Class | `SAIF.Data.NHibernate` | Wraps a built NHibernate `Configuration` together with its serialized-config file path. |
| [Repository&lt;TEntity&gt;](SAIF.Data.NHibernate/Repository.md) | Class | `SAIF.Data.NHibernate` | Concrete, constructible generic repository bound to a `NHibernateUnitOfWork`. |
| [RepositoryBase&lt;TEntity&gt;](SAIF.Data.NHibernate/RepositoryBase.md) | Class | `SAIF.Data.NHibernate` | Generic CRUD/query surface over `ISessionStrategy`, shared by all repositories. |
| [OracleStatelessUnitOfWorkFactory](SAIF.Data.NHibernate.Factories/OracleStatelessUnitOfWorkFactory.md) | Class | `SAIF.Data.NHibernate.Factories` | Builds units of work using a stateless Oracle NHibernate session. |
| [ISessionStrategy](SAIF.Data.NHibernate.Interfaces/ISessionStrategy.md) | Interface | `SAIF.Data.NHibernate.Interfaces` | Seam contract abstracting stateful vs. stateless NHibernate session semantics. |
| [NHibernateUnitOfWork](SAIF.Data.NHibernate.UnitOfWork/NHibernateUnitOfWork.md) | Class | `SAIF.Data.NHibernate.UnitOfWork` | Owns the transaction boundary and hands out `Repository<TEntity>` instances bound to its session. |
| [ImageRepositoryExtensions](SAIF.Data.NHibernate.Repositories.Imaging/ImageRepositoryExtensions.md) | Class | `SAIF.Data.NHibernate.Repositories.Imaging` | Static extension methods providing Oracle sequence-based ID generation for the Imaging domain. |

## Mapping classes (not individually documented)

The 42 FluentNHibernate `ClassMap<TEntity>` mapping classes under `Mappings/` (across `Contacts`, `Deployment`, `Employee`, `Imaging`, `Menu`, `PDF`, `Preferences`, `Printing`, `Users`, `WebContext` domain sub-folders, namespace `SAIF.Data.NHibernate.Mappings.*`) are not documented as individual API reference pages. They are discovered by NHibernate via assembly scanning (`AddFromAssemblyOf<IUnitOfWorkFactory>()`) rather than direct external consumption, and most are declared `internal`. A small number — `DeploymentRequestMap`, `DeploymentResultMap`, `DeploymentStagedMap`, `ImageDocumentNameCodeMap`, `ImageDocumentNameGCodeMap`, `ImageDocumentTypeGCodeMap` — have no explicit access modifier in source, which the Phase 1 analysis flagged as an inconsistency in authoring rather than an intentional public API surface distinction; this could not be confirmed with the original authors.* These six are grouped here rather than given individual pages because the value NHibernate consumers get from this library is the `Configuration`/`ISessionFactory` built from the mapping set as a whole (see [Database tables](../database-tables.md) for the complete entity/table catalog), not per-mapping-class API surface.

| Domain folder | Mapping classes |
| --- | --- |
| `Contacts` | `AddressCodeMap`, `AddressMap`, `CompanyMap`, `CountryCodeMap`, `EmailAddressMap`, `EmailCodeMap`, `PersonMap`, `PhoneCodeMap`, `PhoneMap`, `StateCodeMap` |
| `Deployment` | `DeploymentRequestMap`, `DeploymentResultMap`, `DeploymentStagedMap` |
| `Employee` | `EmployeeMap`, `EmployeeStatusMap`, `WCISEmployeeMap` |
| `Imaging` | `ImageAffiliationMap`, `ImageCategoryCodeMap`, `ImageDocumentNameCodeMap`, `ImageDocumentNameGCodeMap`, `ImageDocumentTypeCodeMap`, `ImageDocumentTypeGCodeMap`, `ImageDocumentTypeGroupCodeMap`, `ImageExternalViewCodeMap`, `ImageMap`, `ImageSystemMap` |
| `Menu` | `BusinessOnlineMenuItemMap` |
| `PDF` | `PDFAppErrorCodeMap`, `PDFCacheMap`, `PDFCacheProcessMap`, `PDFCacheRequestMap`, `PDFStatusCodeMap`, `PDFTrackingCodeMap`, `PDFTrackingMap` |
| `Preferences` | `PreferencesMap` |
| `Printing` | `XDocumentMap`, `XPrintControlMap` |
| `Users` | `ExternalUserMap`, `ExternalUserStatusCodeMap`, `ExternalUserTypeCodeMap`, `ExternalUserTypeMap` |
| `WebContext` | `WebContextItemMap` |

`StatefulSessionStrategy`, `StatelessSessionStrategy` (both `internal class : ISessionStrategy`), and `SessionHelperBase`/`OracleSessionHelper`/`SqlServerSessionHelper` (all `internal`) are likewise implementation details not part of the public surface — they are reachable only through the `ISessionStrategy`/`ISessionHelper` interfaces returned by the public factory/unit-of-work types, so they are not listed in the Types table above.

> **Note:** Statements marked with `*` were inferred from code structure, naming
> conventions, or contextual evidence where direct confirmation was not available
> in source artifacts.

## Sources
- `Interfaces/IConfigurationFactory.cs`
- `Interfaces/IUnitOfWorkFactory.cs`
- `Interfaces/ISessionStrategy.cs`
- `Factories/ConfigurationFactoryBase.cs`
- `Factories/OracleConfigurationFactory.cs`
- `Factories/SqlServerConfigurationFactory.cs`
- `Factories/UnitOfWorkFactoryBase.cs`
- `Factories/OracleUnitOfWorkFactory.cs`
- `Factories/OracleStatelessUnitOfWorkFactory.cs`
- `Factories/SqlServerUnitOfWorkFactory.cs`
- `Factories/PersistenceConfiguration.cs`
- `UnitOfWork/NHibernateUnitOfWork.cs`
- `Repositories/Repository.cs`
- `Repositories/RepositoryBase.cs`
- `Repositories/Imaging/ImageRepositoryExtensions.cs`
- `Mappings/` (42 `ClassMap<TEntity>` files across 10 domain sub-folders)
