Skip to content

SAIF.NetCore.NHibernate database tables

This library ships no entity mappings or business schema of its own. Only two table-like entities surface in its own code: one Oracle pseudo-table used by the built-in system-date query, and the unresolved, consumer-supplied generic entity type used by the connectivity-test helper.

Table catalog

Table Type Engine Description
DUAL Pseudo-table Oracle Built-in single-row Oracle pseudo-table queried by OracleSessionHelper.SystemDate to read the database server date.
TEntity Unresolved/generic** Any (consumer-mapped) Placeholder for whatever entity type a consuming application supplies to Repository<TEntity>.Query()/UnitOfWork.TestConnection<TEntity>(); this library has no mapping for it.

DUAL

Field Value
Engine Oracle
Schema Unqualified** (resolved via the public DUAL synonym; the connecting schema/user is determined by the consumer's connection string, not by this library)
Access pattern Read-only, via Session.CreateSqlQuery("select sysdate from dual").UniqueResult() in OracleSessionHelper.SystemDate
Referenced by SQL-001
Related business rules BR-NH-17, BR-NH-18

DUAL is Oracle's standard single-row, single-column pseudo-table; it holds no application data and exists solely so that SELECT sysdate FROM dual has a FROM clause to query against.

TEntity

Field Value
Engine Any — selected by UnitOfWorkOptions.Database/the connection configuration a consumer supplies, not by the entity mapping itself
Schema Unresolved** — no concrete entity or mapping exists in this library's own source
Access pattern Read, via LINQ-to-NHibernate (Repository<TEntity>.Query().Where(x => false).ToList()) in UnitOfWork.TestConnection<TEntity>()
Referenced by SQL-004
Related business rules BR-NH-01, BR-NH-04, BR-NH-08, BR-NH-11, BR-NH-12, BR-NH-13

TEntity is a type parameter, not a concrete table. UnitOfWork.TestConnection<TEntity>() is a generic connectivity probe: it runs Repository<TEntity>.Query().Where(x => false).ToList() against whatever entity type and NHibernate mapping the calling application supplies. The constant-false predicate is translated to a WHERE clause that can never match a row, so the query always materializes zero rows — it proves connectivity, session-factory build success, and mapped-table accessibility without ever reading real data. The actual table/schema queried is unknown to this library and varies per caller.**

Table relationships

No cross-table relationships were identified in this library's SQL or mapping usage. DUAL and TEntity are queried independently and never joined.

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.

Sources

  • src/SAIF.NetCore.Nhibernate/SAIF.NetCore.NHibernate/SAIF.NetCore.NHibernate/SessionHelpers/OracleSessionHelper.cs
  • src/SAIF.NetCore.Nhibernate/SAIF.NetCore.NHibernate/SAIF.NetCore.NHibernate/SessionHelpers/SessionHelperBase.cs
  • src/SAIF.NetCore.Nhibernate/SAIF.NetCore.NHibernate/SAIF.NetCore.NHibernate/UnitOfWork.cs
  • src/SAIF.NetCore.Nhibernate/SAIF.NetCore.NHibernate/SAIF.NetCore.NHibernate/Repository.cs