scopes property
The query's resolved scope predicates — tenant, soft delete, any other global scope — that every row this writer touches has to satisfy.
A set-based UPDATE … JOIN #staging is still a filtered write: without
these it would reach across tenants and into soft-deleted rows, which
the single-row update() on the same query cannot do. Empty only for a
table that declares no scopes, or a query that switched them off.
Insert paths take no scope predicate: an INSERT has no WHERE to
apply one to. A scope that has to be written onto new rows belongs in
the Create values, where the caller can see it.
Implementation
final List<MssqlCondition> scopes;