MssqlQueryContext<TRow> class
Everything a terminal needs to execute a query against one table: the session, the binding, the clock, the dialect and the observer.
The context is long-lived — a generated db.orders getter is cached, so
its context outlives any one query. What must not outlive one operation
is the scope resolution, because a tenant factory reads ambient state:
each terminal calls scopeCompiler once and threads that
MssqlScopeCompiler through every statement it runs, so page and its
count, and a read and its includes, cannot see two different tenants
across an await. The dialect is cached, in a shared
MssqlCapabilityCache, because the server's version does not change
under the application.
- Annotations
-
- @immutable
Constructors
-
MssqlQueryContext({required MssqlSession session, required MssqlTableBinding<
TRow> binding, MssqlDialect? dialect, MssqlClock clock = MssqlClock.serverUtc, MssqlChangeHub? changes, MssqlCapabilityCache? capabilities, MssqlQueryObserver? observer, MssqlObserverOptions observerOptions = const MssqlObserverOptions()})
Properties
-
binding
→ MssqlTableBinding<
TRow> -
final
- capabilities → MssqlCapabilityCache?
-
Shared dialect resolution for this database, or the process-wide cache.
final
- changes → MssqlChangeHub?
-
Committed-write hub for MssqlWatchStrategy.localWrites, or null when
this context was not created by an MssqlAppDatabase.
final
- clock → MssqlClock
-
final
- dialect → MssqlDialect
-
final
- fixedDialect → MssqlDialect?
-
The dialect this context was pinned to, or null when it asks the
server.
no setter
- hashCode → int
-
The hash code for this object.
no setterinherited
- observer → MssqlQueryObserver?
-
Optional ORM-level observer for compile / mapping / relation-load.
final
- observerOptions → MssqlObserverOptions
-
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- session → MssqlSession
-
final
Methods
-
baseQuery(
MssqlScopeSelection selection, {MssqlScopeCompiler? scopes}) → MssqlQuery -
The base
SELECTfor this table, with scope conditions applied. -
globalScopedQuery(
MssqlScopeSelection selection, {MssqlScopeCompiler? scopes}) → MssqlQuery -
Global-scope-only query (no soft-delete filter), for
forceDelete,restoreand_softDelete. -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
resolveDialect(
) → Future< MssqlDialect> - The dialect of the current database, asking the server at most once.
-
scopeCompiler(
MssqlScopeSelection selection) → MssqlScopeCompiler - A fresh scope snapshot for this context's binding.
-
scopedQuery(
MssqlScopeSelection selection, {MssqlScopeCompiler? scopes}) → MssqlQuery -
A
SELECTwith no projection, only scope conditions — forexistsandcount, which do not need the full column list. -
toString(
) → String -
A string representation of this object.
inherited
-
withSession(
MssqlSession session) → MssqlQueryContext< TRow> -
The same context on
session, so a snapshot transaction can run the page and its count without rebuilding bindings.
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited