---
title: SAIF.Framework.Data.NHibernate dependencies
summary: Internal and external dependencies for this library.
status: draft
owner: Framework
last_reviewed: 2026-09-15
library: SAIF.Framework.Data.NHibernate
reference_type: package
---

# SAIF.Framework.Data.NHibernate dependencies

`SAIF.Framework.Data.NHibernate` is a single-project library packed from one `.csproj`; it has no in-repo `<ProjectReference>` elements, but four of its NuGet package references (`SAIF.Framework.Common`, `SAIF.Framework.Core`, `SAIF.HashUtil`, `SAIF.Web.API.Clients`) are internal organizational packages confirmed in the SAIFNuget feed, not external third-party packages. The `SAIF.Framework.Core` reference is this library's most heavily consumed dependency: it supplies the `IUnitOfWork`/`IRepository<TEntity>`/`ISessionHelper`/`IDataEntity` seam interfaces and the entire `SAIF.Data.Model.*` entity-model namespace (see the Internal dependencies table below), brought into this project's scope via C# enclosing-namespace lookup — this project's `RootNamespace` (`SAIF.Data.NHibernate`) nests under Core's `SAIF.Data` namespace — rather than an explicit `using SAIF.Data;` directive.

## Internal dependencies

| Dependency | Reference Type | Usage |
| --- | --- | --- |
| SAIF.Framework.Common | NuGet Package | Provides `SAIF.Common.Extensions` (`ForEach`, `IsNull`, `IsMinOrMax`) used in `Factories/OracleConfigurationFactory.cs`, `Factories/SqlServerConfigurationFactory.cs`, `SessionHelper/SessionHelperBase.cs`; and `SAIF.Common` namespace types referenced in `UnitOfWork/NHibernateUnitOfWork.cs` and `Sessions/StatefulSessionStrategy.cs`. Version `2.0.22068.1`, confirmed present in the internal SAIFNuget feed. |
| SAIF.Framework.Core | NuGet Package | Supplies the `SAIF.Data` namespace seam interfaces `IUnitOfWork` (implemented by `NHibernateUnitOfWork`), `IRepository<TEntity>` (implemented by `RepositoryBase<TEntity>`), `ISessionHelper` (implemented by `SessionHelperBase`), and `IDataEntity` (the generic constraint on `GetRepository<TEntity>()`), plus the `SAIF.Data.Model.*` entity-model namespace mapped throughout `Mappings/`. No `using SAIF.Data;` directive is required or present: this project's `RootNamespace` (`SAIF.Data.NHibernate`) nests under Core's `SAIF.Data` namespace via C# enclosing-namespace lookup, bringing Core's types into scope directly. Corroborated by the sibling `SAIF.Framework.Data.NHibernate.32.csproj`'s direct `<ProjectReference>` to `SAIF.Framework.Core.csproj`. Version `2.0.22075.1`, confirmed present in the internal SAIFNuget feed. |
| SAIF.HashUtil | NuGet Package | Referenced; no direct usage found in scanned folders.** Version `1.0.18067.1`, confirmed present in the internal SAIFNuget feed. |
| SAIF.Web.API.Clients | NuGet Package | Referenced; no direct usage found in scanned folders.** Version `1.1.22066.1`, confirmed present in the internal SAIFNuget feed. Ships two referenced assemblies from the same package folder: `SAIF.Web.API.Clients.dll` and `SAIF.Web.API.Core.dll` (the latter is not a separate NuGet package — both `<Reference>` elements resolve to `packages\SAIF.Web.API.Clients.1.1.22066.1\lib\net45\`). |

## External dependencies

| Dependency | Version | Usage |
| --- | --- | --- |
| FluentNHibernate | 2.0.1.0 | Fluent mapping DSL (`ClassMap<T>`, `Fluently.Configure()`) used to build the 39 entity mappings and configure NHibernate. |
| NHibernate | 4.0.3.4000 | Core ORM (`ISession`, `IStatelessSession`, `Configuration`, `ISessionFactory`) underlying the session strategies, unit of work, and repositories. |
| Iesi.Collections | 4.0.1.4000 | NHibernate collection dependency. |
| Oracle.ManagedDataAccess | 21.5.0 | Oracle ADO.NET provider consumed by `OracleDataClientConfiguration`/`OracleManagedDataClientDriver`. |
| Autofac | 3.5.2 | Referenced but no registration/module code found in scanned folders — likely consumed by a downstream application registering these factories/interfaces.** |
| FluentValidation | 5.5.0.0 | Referenced; no direct validator usage found in scanned folders.** |
| log4net | 2.0.5 | Referenced; no direct logging calls found in scanned folders.** |
| Newtonsoft.Json | 8.0.3 | Referenced; no direct usage found in scanned folders.** |
| RestSharp | 106.12.0 | Referenced; no direct usage found in scanned folders.** |
| Microsoft.Bcl.AsyncInterfaces, System.Buffers, System.Memory, System.Numerics.Vectors, System.Runtime.CompilerServices.Unsafe, System.Text.Encodings.Web, System.Text.Json, System.Threading.Tasks.Extensions, System.ValueTuple | various | Transitive/BCL polyfill packages, likely pulled in by Newtonsoft.Json/RestSharp/SAIF.* dependencies rather than used directly.* |

## Dependency risks and notes
- `IUnitOfWork`, `IRepository<TEntity>`, `ISessionHelper`, `IDataEntity`, and `SAIF.Data.Model.*` are consumed or implemented throughout this library and are supplied by the already-listed `SAIF.Framework.Core` package dependency (namespace `SAIF.Data`), not by the consuming application. They enter this project's scope via C# enclosing-namespace lookup: this project's `RootNamespace` (`SAIF.Data.NHibernate`) nests every source file inside Core's `SAIF.Data` namespace, so no `using SAIF.Data;` directive is required or present — this is why the earlier absence of a `using SAIF.Framework.Core` statement was mistaken for a missing or unresolved dependency. The `using SAIF.Data.NHibernate.Interfaces;` directive found in this library's own files is unrelated: that namespace belongs to this project and contains only its 3 locally-declared interfaces (`IConfigurationFactory`, `ISessionStrategy`, `IUnitOfWorkFactory`). Corroborated by the sibling `SAIF.Framework.Data.NHibernate.32.csproj`'s direct `<ProjectReference>` to `SAIF.Framework.Core.csproj`.
- Seven referenced NuGet packages (Autofac, FluentValidation, log4net, Newtonsoft.Json, RestSharp, SAIF.HashUtil, SAIF.Web.API.Clients) have no direct usage found in the scanned folders. These may be used only by the orphaned `SAIF.Framework.Data.NHibernate.32.csproj` variant (out of scope for this documentation set), may be transitive-only, or may indicate stale/unused references — this could not be resolved from source alone.**
- Deserialization of a previously-serialized NHibernate `Configuration` (`BinaryFormatter`) silently swallows any exception and falls back to a fresh build; this affects the `NHibernate`/`FluentNHibernate` dependency's runtime behavior but is not a package-version risk per se.
- No `DatabaseConfig`/Autofac-module wiring (e.g., named unit-of-work registrations) was found in this repository; such wiring is presumably owned by a consuming application, but this could not be confirmed.**

> **Note:** Statements marked with `*` were inferred from code structure, naming
> conventions, or contextual evidence where direct confirmation was not available
> in source artifacts. Statements marked with `**` could not be confirmed; treat
> as unknown until verified.

## Related documentation
- [Index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Operations and processes](operations-processes.md)
- [Business rules](business-rules.md)
- [Database tables](database-tables.md)
- [SQL catalog](sql/index.md)
- [API reference](api/index.md)

## Sources
- `packages.config`
- `SAIF.Framework.Data.NHibernate.csproj`
- `SAIF.Framework.Data.NHibernate.sln`
- `SAIF.Framework.Data.NHibernate.nuspec`
- `Factories/ConfigurationFactoryBase.cs`
- `Factories/OracleConfigurationFactory.cs`
- `Factories/SqlServerConfigurationFactory.cs`
- `SessionHelper/SessionHelperBase.cs`
- `UnitOfWork/NHibernateUnitOfWork.cs`
- `Sessions/StatefulSessionStrategy.cs`
- `Repositories/RepositoryBase.cs`
- `Repositories/Imaging/ImageRepositoryExtensions.cs`
- `Mappings/` (42 `ClassMap<TEntity>` files)
