SQLProvider

DesignCacheEntry Type

One generation of provided types for one set of static parameters. Once built, a generation is served unchanged for the lifetime of the entry. This is a correctness requirement, not a cache policy: the compiler-facing (target-model) provided types are memoized by the TypeProvider SDK keyed on the identity of these source types, so producing a second source root for the same static parameters while any compilation may still re-request it makes the compiler see two unrelated erased types (intermittent FS0193/FS0001 "type X is not compatible with type X"). The entry is therefore only ever dropped whole (idle expiration or explicit cache clear), never rebuilt and swapped in place underneath a live compilation. Reference equality so the identity-checked eviction matches the exact entry instance, not its (concurrently mutated) field values.

Record fields

Record Field Description

LastAccess

Full Usage: LastAccess

Field type: int64
Modifiers: mutable

Last access in UTC ticks. Updated lock-free on every instantiation request; entries idle longer than the expiration are dropped to free memory.

Field type: int64

Root

Full Usage: Root

Field type: Lazy<ProvidedTypeDefinition>

The provided root type, built lazily once per set of static parameters.

Field type: Lazy<ProvidedTypeDefinition>

Type something to start searching.