---
title: ProviderQueryProvider
summary: API reference for ProviderQueryProvider.
status: draft
owner: SAIF.Core documentation team
last_reviewed: 2026-09-24
library: SAIF.Data
reference_type: package
---

# ProviderQueryProvider

Query provider exposing 15 data-access operation(s) (`GetActiveWorkingRelationshipsForProvider`, `GetAllActiveProviderAddressesForUpdateDate`, `GetBillProviderLocationIds`, `GetExpiredRelationshipsOnOrAfterDate`, `GetLocation`, `GetProvider` and 9 more) against 12 distinct table(s); see [sql/index.md](../../sql/index.md) for the full ORM operation catalog.

## Purpose
- Provides read/write access to 12 table(s) via NHibernate `IQueryable<T>`/`GetRepository<T>()` calls documented in [sql/index.md](../../sql/index.md).
- Exposes 15 public query/command method(s) consumed by higher application layers; see [database-tables.md](../../database-tables.md) for the underlying schema.

## Context
- Namespace: `SAIF.Data.Queries.Providers`
- Assembly/package: `SAIF.Data`

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| GetProviderAddressLastUpdateDate | `DateTime GetProviderAddressLastUpdateDate()` | Executes an ORM query ([SQL-200](../../sql/SQL-200-provider-query-provider-get-provider-address-last-update-date.md)) against [PROVIDER_ADDRESS](../../database-tables.md#provider_address). |
| GetAllActiveProviderAddressesForUpdateDate | `IEnumerable<BatchProviderAddress> GetAllActiveProviderAddressesForUpdateDate(DateTime lastUpdateDate)` | Executes an ORM query ([SQL-201](../../sql/SQL-201-provider-query-provider-get-all-active-provider-addresses-for-update-date.md)) against [PROVIDER_ADDRESS](../../database-tables.md#provider_address). |
| GetProvider | `Provider GetProvider(long providerId)` | Executes an ORM query ([SQL-202](../../sql/SQL-202-provider-query-provider-get-provider.md)) against [PROVIDER](../../database-tables.md#provider). |
| GetProviderByTaxId | `Provider GetProviderByTaxId(string taxId, bool includeNonPrimaryTaxIds = false)` | Executes an ORM query ([SQL-203](../../sql/SQL-203-provider-query-provider-get-provider-by-tax-id.md)) against [PROVIDER_TAX_ID](../../database-tables.md#provider_tax_id). |
| GetLocation | `ProviderLocation GetLocation(long locationId)` | Executes an ORM query ([SQL-205](../../sql/SQL-205-provider-query-provider-get-location.md)) against [PROVIDER_LOCATION](../../database-tables.md#provider_location). |
| GetProviderAddresses | `IEnumerable<ProviderAddress> GetProviderAddresses(long providerId)` | Executes an ORM query ([SQL-206](../../sql/SQL-206-provider-query-provider-get-provider-addresses.md)) against [PROVIDER_ADDRESS](../../database-tables.md#provider_address), [PROVIDER_LOCATION](../../database-tables.md#provider_location), [PROVIDER](../../database-tables.md#provider). |
| GetProviderAddresses | `IEnumerable<ProviderAddress> GetProviderAddresses(long providerId, string addressType, bool includeExpired = false)` | Executes an ORM query ([SQL-206](../../sql/SQL-206-provider-query-provider-get-provider-addresses.md)) against [PROVIDER_ADDRESS](../../database-tables.md#provider_address), [PROVIDER_LOCATION](../../database-tables.md#provider_location), [PROVIDER](../../database-tables.md#provider). |
| GetProviderPaymentAddresses | `IEnumerable<ProviderAddress> GetProviderPaymentAddresses(long providerId, bool includeExpired = false)` | Retrieves provider payment addresses.* |
| GetProviderPhysicalAddresses | `IEnumerable<ProviderAddress> GetProviderPhysicalAddresses(long providerId)` | Retrieves provider physical addresses.* |
| GetProviderPhysicalAddresses | `IEnumerable<ProviderAddress> GetProviderPhysicalAddresses(long providerId, bool includeExpired)` | Retrieves provider physical addresses.* |
| GetProviderLocationAddresses | `IEnumerable<ProviderAddress> GetProviderLocationAddresses(long providerLocationId, bool includeExpired = false)` | Executes an ORM query ([SQL-208](../../sql/SQL-208-provider-query-provider-get-provider-location-addresses.md)) against [PROVIDER_ADDRESS](../../database-tables.md#provider_address), [PROVIDER_LOCATION](../../database-tables.md#provider_location). |
| GetProviderLocationAddresses | `IEnumerable<ProviderAddress> GetProviderLocationAddresses(long providerLoctionId, string addressType, bool includeExpired = false)` | Executes an ORM query ([SQL-208](../../sql/SQL-208-provider-query-provider-get-provider-location-addresses.md)) against [PROVIDER_ADDRESS](../../database-tables.md#provider_address), [PROVIDER_LOCATION](../../database-tables.md#provider_location). |
| GetProviderLocationPaymentAddresses | `IEnumerable<ProviderAddress> GetProviderLocationPaymentAddresses(long providerLocationId)` | Retrieves provider location payment addresses.* |
| GetProviderLocationPaymentAddresses | `IEnumerable<ProviderAddress> GetProviderLocationPaymentAddresses(long providerLocationId, bool includeExpired)` | Retrieves provider location payment addresses.* |
| GetProviderLocationCorrespondenceAddresses | `IEnumerable<ProviderAddress> GetProviderLocationCorrespondenceAddresses(long providerLocationId)` | Retrieves provider location correspondence addresses.* |
| GetProviderLocationCorrespondenceAddresses | `IEnumerable<ProviderAddress> GetProviderLocationCorrespondenceAddresses(long providerLocationId, bool includeExpired)` | Retrieves provider location correspondence addresses.* |
| GetProviderLocationPhysicalAddresses | `IEnumerable<ProviderAddress> GetProviderLocationPhysicalAddresses(long providerLocationId)` | Retrieves provider location physical addresses.* |
| GetProviderLocationPhysicalAddresses | `IEnumerable<ProviderAddress> GetProviderLocationPhysicalAddresses(long providerLocationId, bool includeExpired)` | Retrieves provider location physical addresses.* |
| GetBillProviderLocationIds | `IEnumerable<long> GetBillProviderLocationIds(long claimId)` | Executes an ORM query ([SQL-210](../../sql/SQL-210-provider-query-provider-get-bill-provider-location-ids.md)) against [CBP_BILL](../../database-tables.md#cbp_bill), [CBP_BILL_STATUS_CODE](../../database-tables.md#cbp_bill_status_code), [PROVIDER_LOCATION](../../database-tables.md#provider_location). |
| GetProviderIdentitiesByNpi | `IEnumerable<ProviderIdentity> GetProviderIdentitiesByNpi(string nationalProviderId)` | Executes an ORM query ([SQL-211](../../sql/SQL-211-provider-query-provider-get-provider-identities-by-npi.md)) against [PROVIDER_IDENTITY](../../database-tables.md#provider_identity), [PROVIDER_IDENTITY_CODE](../../database-tables.md#provider_identity_code). |
| GetWorkingProviderRelationshipsByParentLocation | `IEnumerable<ProviderRelationship> GetWorkingProviderRelationshipsByParentLocation(long providerLocationId,
            DateTime serviceDate, bool includeExpired = false)` | Executes an ORM query ([SQL-212](../../sql/SQL-212-provider-query-provider-get-working-provider-relationships-by-parent-location.md)) against [PROVIDER_RELATIONSHIP](../../database-tables.md#provider_relationship), [PROVIDER_RELATIONSHIP_CODE](../../database-tables.md#provider_relationship_code), [PROVIDER_LOCATION](../../database-tables.md#provider_location). |
| GetExpiredRelationshipsOnOrAfterDate | `IEnumerable<ProviderRelationship> GetExpiredRelationshipsOnOrAfterDate(DateTime effectiveDate)` | Executes an ORM query ([SQL-213](../../sql/SQL-213-provider-query-provider-get-expired-relationships-on-or-after-date.md)) against [PROVIDER_RELATIONSHIP](../../database-tables.md#provider_relationship), [PROVIDER_RELATIONSHIP_CODE](../../database-tables.md#provider_relationship_code). |
| GetActiveWorkingRelationshipsForProvider | `IEnumerable<ProviderRelationship> GetActiveWorkingRelationshipsForProvider(long providerLocationId)` | Executes an ORM query ([SQL-214](../../sql/SQL-214-provider-query-provider-get-active-working-relationships-for-provider.md)) against [PROVIDER_RELATIONSHIP](../../database-tables.md#provider_relationship), [PROVIDER_RELATIONSHIP_CODE](../../database-tables.md#provider_relationship_code). |
| GetRenderingProviderLocationsByNpi | `IEnumerable<ProviderLocation> GetRenderingProviderLocationsByNpi(string nationalProviderId, long providerLocationId, DateTime serviceDate)` | Retrieves rendering provider locations by npi.* |
| GetProviderMCOPlans | `IEnumerable<MCOProvider> GetProviderMCOPlans(long providerLocationId)` | Executes an ORM query ([SQL-215](../../sql/SQL-215-provider-query-provider-get-provider-mcoplans.md)) against [MCO_PROVIDER](../../database-tables.md#mco_provider). |
| IsProviderInMco | `bool IsProviderInMco(string mcoPlanId, long providerLocationId, DateTime serviceDate)` | Executes an ORM query ([SQL-216](../../sql/SQL-216-provider-query-provider-is-provider-in-mco.md)) against [MCO_PROVIDER](../../database-tables.md#mco_provider). |
| HasActiveRelationship | `bool HasActiveRelationship(long providerLocationId, long parentProviderLocationId)` | Executes an ORM query ([SQL-217](../../sql/SQL-217-provider-query-provider-has-active-relationship.md)) against [PROVIDER_RELATIONSHIP](../../database-tables.md#provider_relationship), [PROVIDER_LOCATION](../../database-tables.md#provider_location). |
| NationalProviderId | `string NationalProviderId` | Field exposing national provider id.* |
| OrganizationalNationalProviderId | `string OrganizationalNationalProviderId` | Field exposing organizational national provider id.* |
| WorkingRelationship | `string WorkingRelationship` | Field exposing working relationship.* |
| ProviderQueryProvider(IRepositoryFactory factory) | `ProviderQueryProvider(IRepositoryFactory factory)` | Initializes a new instance, wiring the repository factory used by this provider's query methods.* |

## Behavioral notes
- Query methods build LINQ expressions over `IQueryable<T>` obtained via `Factory.GetRepository<T>()` and execute them against the underlying NHibernate session.*

## Constraints and usage notes
- Instances are constructed with an `IRepositoryFactory` and are expected to be resolved through dependency injection rather than instantiated directly.*

> **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
- `Data/SAIF.Data/Queries/Providers/ProviderQueryProvider.cs`
