Table of Contents

Namespace BpNexT.NET.Queryable

Classes

IncludeExtensions

Eager loading of child navigations in the style of EF Core's Include/ThenInclude: GraphQL linked tables (lnk*) and nested tables (tbl*). A nested table has no key variant — the nesting scopes it — so only the plain .Include(x => x.Nav) form applies to it; the on/via/handle overloads below are link-only. For links, the key variant is chosen per call:

  • join condition — index (by*) and parent binding (using*) are inferred: .Include(a => a.PostalAddresses, (a, pa) => pa.AdrNr == a.AdrNr && pa.AnsNr == a.ReAnsNr)
  • index initializer — explicit index, binding from the assignments: .Include(a => a.PostalAddresses, a => new PostalAddressesAdrNrAnsNrIdx { AdrNr = a.AdrNr, AnsNr = a.ReAnsNr })
  • none — the navigation's default variant (all related rows).
Arguments are validated at the call site; the calls ride the expression tree as markers that the executing provider extracts (currently GraphQL only — the COM backend rejects them). On non-BpNexT queryables (e.g. in-memory LINQ) Include is a no-op, like in EF Core. The validation and dispatch are provided by the BpNexT.NET runtime assembly.
QueryableExtensions

Provides extension methods for querying BpNexT datasets. The implementations are provided by the BpNexT.NET runtime assembly.

Interfaces

IIncludableQueryable<T, TProp>

A queryable that carries the navigation type of the last Include/ThenInclude so further ThenInclude calls chain with correct typing (EF-Core pattern). Covariance lets a List<TChild>? navigation chain as IEnumerable<TChild>.