Skip to content

SQL-074: Retrieve AdpEmployeeFeed via ExtractUsers

This ORM statement performs a read operation on AdpEmployeeFeed via ExtractUsers, executed from Services/SAIF.Services/SystemUsers/UserExtractService.cs (L130-133).

Classification

Field Value
SQL ID SQL-074
Operation type Read
Execution method ORM (NHibernate LINQ)
Database Oracle
Schema [unqualified]**
Command type N/A (ORM-generated)
Business object AdpEmployeeFeed
Criteria property N/A — ORM
Lifecycle method ExtractUsers

Parameters

Parameter Direction Type Max length Description
:EmployeeId Input string N/A Captured member userExtract.EmployeeId
:take Input int N/A Row limit from FirstOrDefault() (value 1)

Tables

Table Access Columns used
ADP_EMPLOYEE_FEED SELECT EMPLOYEE_ID, ADP_EMPLOYEE_FEED_SEQ_NUM, EMAIL_ADDRESS, FIRST_NAME, LAST_NAME, MIDDLE_NAME, USERID_TEXT, EMPLOYEE_STATUS_CODE, PHONE_NUM, PHONE_EXTENSION_NUM, FAX_NUM, PREFERRED_NAME, WORKING_JOB_TITLE_TEXT, MANAGER_EMPLOYEE_ID, DIVISION_NAME

LINQ statement

Source: Services/SAIF.Services/SystemUsers/UserExtractService.cs:130-133.

// Services/SAIF.Services/SystemUsers/UserExtractService.cs:130
var adpEmployee =
    _unitOfWork.GetRepository<AdpEmployeeFeed>()
        .Query()
        .FirstOrDefault(su => su.EmployeeId == userExtract.EmployeeId);

Sample SQL

Inferred SQL: This SQL was inferred from the LINQ statement above and the NHibernate mappings. It is not concrete SQL from source code; NHibernate generates the executed statement at runtime, so aliases, column order, join syntax, and bind-parameter names may differ.

-- Inferred from LINQ (NHibernate mapping translation); not concrete SQL
SELECT *
FROM (
  SELECT
    AEF.EMPLOYEE_ID,
    AEF.ADP_EMPLOYEE_FEED_SEQ_NUM,
    AEF.EMAIL_ADDRESS,
    AEF.FIRST_NAME,
    AEF.LAST_NAME,
    AEF.MIDDLE_NAME,
    AEF.USERID_TEXT,
    AEF.EMPLOYEE_STATUS_CODE,
    AEF.PHONE_NUM,
    AEF.PHONE_EXTENSION_NUM,
    AEF.FAX_NUM,
    AEF.PREFERRED_NAME,
    AEF.WORKING_JOB_TITLE_TEXT,
    AEF.MANAGER_EMPLOYEE_ID,
    AEF.DIVISION_NAME
  FROM ADP_EMPLOYEE_FEED AEF
  WHERE AEF.EMPLOYEE_ID = :EmployeeId)
WHERE ROWNUM <= :take

Translation notes: - The identifier is Id(x => x.EmployeeId).Column("EMPLOYEE_ID"); the Id property is a plain Map to ADP_EMPLOYEE_FEED_SEQ_NUM, so both are selected. - FirstOrDefault() on the Oracle10 dialect → ROWNUM wrapper; there is no ORDER BY, so which row is returned when several match is not deterministic.

Operations and processes

Note: Statements marked with ** could not be confirmed; treat as unknown until verified.

Sources

  • Services/SAIF.Services/SystemUsers/UserExtractService.cs (L131)