Appearance
Carrot.Data.Scaffold.Process
net
Core scaffolding process framework -- discovers, creates, scaffolds, and links domain concepts into a typed graph via assembly scanning and reflection.
Installation
Project reference:
xml
<ProjectReference Include="..\Carrot.Data.Scaffold.Process\Carrot.Data.Scaffold.Process.csproj" />Architecture
Scaffold Lifecycle
ScaffoldProcess.Scaffold() runs six sequential phases across all registered concepts, ordered by ProcessPriority (IntrospectiveAbstract=1, DeclarativeSingle=2, Declarative=3, Introspective=4):
- DiscoverDefinitions -- scans
ScanAssemblyfor concrete types implementing the concept'sDefineType - CreateGraph -- constructs graph objects via
ScaffoldGraphFactory, resolving constructor params including cross-concept references - BeforeScaffoldMethods -- pre-scaffold hooks fire at concept and instance level
- ScaffoldMethods -- invokes the
Scaffold()method on each definition, passing its configure object - AfterScaffoldMethods -- post-scaffold hooks
- LinkGraph -- connects graph objects via
[ScaffoldGraphCollection]attributes, populating relationship collections
Concept Model
Each concept binds three types together:
- Define (
IScaffoldDefine) -- user-authored class declaring what to scaffold - Configure (
IScaffoldConfigure) -- fluent API passed to the define'sScaffold()method - Graph (
IScaffoldGraph) -- the output data structure
Four concept flavors handle different keying strategies:
- Declarative -- string-keyed, multiple instances (e.g., controllers, APIs)
- DeclarativeSingle -- singleton (e.g., database, collection)
- Introspective --
Type-keyed, driven by generic type parameter (e.g., entities, models) - IntrospectiveAbstract -- two-level hierarchy for abstract base types with concrete inheritors
Graph Factory
ScaffoldGraphFactory creates graph objects by reflection, trying constructors in descending parameter count. It resolves:
logicalName/rawIdentifier-- from the define'sLogicalNameTGraphRoot-- the process graph rootIScaffoldGraphsubtypes -- cross-concept references resolved via[ScaffoldGraphKey]attribute on the define type
Graph Linking
After scaffolding, LinkGraph populates ICollection<T> properties marked with [ScaffoldGraphCollection], optionally filtering by a back-reference property.
Dependencies
Carrot.Data.Scaffold.Core-- base interfaces (IScaffoldGraph,IScaffoldDefine,IScaffoldConfigure, attributes)Carrot.Logging--ILog- .NET 10
Build
bash
dotnet buildUsing Carrot.Data.Scaffold.Process
Getting Started
This package is the base framework. You don't use it directly -- you extend it by creating a domain-specific process (like ScaffoldApiProcess or ScaffoldDatabaseProcess). Here's the pattern:
1. Define a graph root and options
csharp
public class ScaffoldMyDomain
{
public ScaffoldProcessGraphCollection<string, MyGraphItem> Items { get; } = new();
}
public class ScaffoldMyDomainOptions
{
public bool ReportConfiguration { get; set; } = false;
}2. Create a process
csharp
public class ScaffoldMyDomainProcess : ScaffoldProcess<ScaffoldMyDomain, ScaffoldMyDomainOptions>
{
public ScaffoldMyDomainProcess(Assembly scanAssembly, ScaffoldMyDomainOptions options, ILog? log)
: base(scanAssembly, options, log)
{
this.ConceptItems = this.Concept<MyConceptItems, MyGraphItem>(
new MyConceptItems(this));
}
public MyConceptItems ConceptItems { get; }
}3. Create a concept
csharp
public class MyConceptItems : ScaffoldConceptDeclarative<ScaffoldMyDomain, ScaffoldMyDomainOptions, MyGraphItem>
{
public MyConceptItems(ScaffoldMyDomainProcess process)
: base(process,
typeof(MyDefineItem), // define type
typeof(MyConfigureItem), // configure type
typeof(MyGraphItem), // graph type
root => root.Items) // store accessor
{ }
}4. Create define and configure types
csharp
// Users implement this to declare items
public abstract class MyDefineItem : IScaffoldDefineDeclarative
{
public abstract string GraphKey { get; }
public string LogicalName => this.GraphKey;
public abstract void Scaffold(MyConfigureItem config, ILog? log = null);
}
// Fluent configuration API
public class MyConfigureItem : IScaffoldConfigure
{
public IScaffoldGraph Graph { get; }
// ... fluent methods
}5. Run the process
csharp
var process = new ScaffoldMyDomainProcess(
typeof(MyAssemblyMarker).Assembly,
new ScaffoldMyDomainOptions(),
log);
ScaffoldMyDomain result = process.Scaffold();
// result.Items now contains all discovered and scaffolded itemsCommon Patterns
Lifecycle Hooks
Override hooks on your concept to inject behavior at each phase:
csharp
protected override void OnAfterDiscovery()
{
// Validate all discovered definitions
}
protected override void OnGraphItemCreated(MyGraphItem graphItem)
{
// Auto-register related items when a graph object is created
}
protected override void OnGraphItemLinked(MyGraphItem graphItem)
{
// Post-linking validation
}Cross-Concept References
Use [ScaffoldGraphKey] on define types to enable automatic graph constructor injection:
csharp
public abstract class MyDefineController : IScaffoldDefineDeclarative
{
[ScaffoldGraphKey(typeof(MyDefineApi))]
public string GetTargetApi() => this.ApiName;
}The graph factory resolves IScaffoldGraph constructor parameters by looking up the referenced concept and key.
Tips / Gotchas
- Processing priority matters. IntrospectiveAbstract(1) runs before DeclarativeSingle(2), Declarative(3), and Introspective(4). If concept B depends on concept A's graph existing, A must have a lower priority number.
- Multiple instances can target the same graph. An instance is not an entity -- you can have several scaffolds that contribute to the same graph object.
- Open vs closed generics. Declarative concepts expect closed define/configure types. Introspective concepts expect open generics that get closed per-entity.
- Assembly scanning is single-assembly. Only
ScanAssemblyis scanned for definition types -- if your defines live in multiple assemblies, you'll need multiple processes or a merged assembly.
Package Contents
Carrot.Data.Scaffold.Process.Api
Package: Carrot.Data.Scaffold.Process.Api
Process
ScaffoldApiProcess -- main process; registers 12 concepts: Collection · Apis · Controllers · Enums · Types · Traits · TraitBehaviours · Model · ModelAbstract · Commands · ResponseStatusSets · RateLimit
ScaffoldApi -- graph root: Apis · Collection · Controllers · Models · Commands · Enums · Types · Traits · TraitBehaviours · RateLimits · ResponseStatusSets
ScaffoldApiOptions -- ReportConfiguration
Define Types
ScaffoldApiDefineApi -- declarative; ApiName · DomainName · Scaffold(ScaffoldApiConfigureApi, ILog?)
ScaffoldApiDefineController -- declarative; BaseRoute · ControllerName · TargetApi · ScaffoldImpl(ScaffoldApiConfigureController, ILog?)
ScaffoldApiDefineModel<TModel> -- introspective; ModelType · Scaffold(ScaffoldApiConfigureModel<TModel>, ScaffoldApiReflectedModel, ILog?) · TypeValid()
ScaffoldApiDefineAbstract<TModel> -- introspective abstract; base model scaffolds applied to all concrete inheritors
ScaffoldApiDefineCollection -- declarative single; collection-level configuration
ScaffoldApiDefineCommand<TCommand> -- introspective; command payload definitions
ScaffoldApiDefineEnum<TEnum> -- introspective; enum definitions
ScaffoldApiDefineType<TType> -- introspective; standalone type definitions
ScaffoldApiDefineTrait<TTrait> -- introspective; trait definitions
ScaffoldApiDefineTraitBehaviour · ScaffoldApiDefineTraitBehaviour<,> · ScaffoldApiDefineTraitBehaviour<,,> -- declarative; trait behaviour definitions
ScaffoldApiDefineRateLimit -- declarative; rate limiting policy definitions
ScaffoldApiDefineResponseStatusSet -- declarative; response status set definitions
ScaffoldApiDefineConversion -- type conversion definitions
Configure Types
Controller
ScaffoldApiConfigureController -- fluent controller config: ActionGet() · ActionPost() · ActionPut() · ActionDelete() · ActionPatch() · ActionHead() · ActionUpload() · AuthenticationRequirement() · RateLimiting() · RequireDatabaseContext() · SetName() · Annotations()
ScaffoldApiConfigureControllerActionRestQuery -- GET action config
ScaffoldApiConfigureControllerActionRestMutation -- POST/PUT/DELETE/PATCH action config
ScaffoldApiConfigureControllerActionUpload -- file upload action config
ScaffoldApiConfigureControllerActionStatusCodes -- HTTP status code overrides
ScaffoldApiConfigureControllerActionAuthentication -- per-action auth config
ScaffoldApiConfigureControllerActionMeta -- action metadata
ScaffoldApiConfigureControllerActionParameter -- route/query/header parameters
ScaffoldApiConfigureControllerActionUploadLimits -- file size/count limits
ScaffoldApiConfigureControllerRequireContext -- database context injection
Action Capabilities
ScaffoldApiConfigureControllerActionCapabilities -- CanFilter() · CanSearch() · CanSort() · Paginated()
ScaffoldApiConfigureControllerActionCapabilitiesCanFilter · ScaffoldApiConfigureControllerActionCapabilitiesCanSearch · ScaffoldApiConfigureControllerActionCapabilitiesCanSort · ScaffoldApiConfigureControllerActionCapabilitiesPaginated
Action Request/Response
ScaffoldApiConfigureControllerActionRequest · ScaffoldApiConfigureControllerActionRequestJson · ScaffoldApiConfigureControllerActionRequestNone
ScaffoldApiConfigureControllerActionResponse · ScaffoldApiConfigureControllerActionResponseJson · ScaffoldApiConfigureControllerActionResponseJsonApi · ScaffoldApiConfigureControllerActionResponseDownload · ScaffoldApiConfigureControllerActionResponseStream · ScaffoldApiConfigureControllerActionResponseNone
Model
ScaffoldApiConfigureModel<TModel> -- fluent model config: HasPrimaryKey() · HasIdentity() · Property() · Projection() · ProjectionSummary() · ProjectionDetail() · ExtendProjection() · RelationshipOne() · RelationshipMany() · InheritsFrom<>() · SetModelUsage() · Annotations()
ScaffoldApiConfigureModelProperty<TModel, TProperty> -- per-property config
ScaffoldApiConfigureModelProjection<TModel> -- projection config
ScaffoldApiConfigureModelProjectionProperty<TModel> -- projection property config
ScaffoldApiConfigureModelPrimaryKey<TModel> -- primary key config
ScaffoldApiConfigureModelIdentity<TModel> -- identity config
ScaffoldApiConfigureModelRelationship -- base relationship config with DetailLevel · Inclusion · Pagination · Visibility
Commands / Enums / Types / Traits
ScaffoldApiConfigureCommand · ScaffoldApiConfigureCommandProperty
ScaffoldApiConfigureEnum · ScaffoldApiConfigureEnumValue
ScaffoldApiConfigureType · ScaffoldApiConfigureTypeProperty · ScaffoldApiConfigureTypeConstructor
ScaffoldApiConfigureTrait · ScaffoldApiConfigureTraitProperty · ScaffoldApiConfigureTraitProjection · ScaffoldApiConfigureTraitProjectionProperty
ScaffoldApiConfigureTraitBehaviour · ScaffoldApiConfigureTraitBehaviour<,> · ScaffoldApiConfigureTraitBehaviour<,,>
Rate Limiting
ScaffoldApiConfigureRateLimit · IScaffoldApiConfigureRateLimit · IScaffoldApiConfigureRateLimitPartitioned · IScaffoldApiConfigureActionProfile
ScaffoldApiConfigureRateLimitInstanceFixed · ScaffoldApiConfigureRateLimitInstanceSliding · ScaffoldApiConfigureRateLimitInstanceToken · ScaffoldApiConfigureRateLimitInstanceConcurrency
Other Configure
ScaffoldApiConfigureApi · ScaffoldApiConfigureCollection · ScaffoldApiConfigureResponseStatusSet
Graph Types
Controllers
ScaffoldApiGraphController · ScaffoldApiGraphControllerAction · ScaffoldApiGraphControllerActionAuthentication · ScaffoldApiGraphControllerActionCapabilities · ScaffoldApiGraphControllerActionMeta · ScaffoldApiGraphControllerActionParameter · ScaffoldApiGraphControllerActionRequest · ScaffoldApiGraphControllerActionResponse · ScaffoldApiGraphControllerActionStatusCodes · ScaffoldApiGraphControllerActionUploadLimits · ScaffoldApiGraphControllerRequireContext
Models
ScaffoldApiGraphModel · ScaffoldApiGraphModel<TModel> · ScaffoldApiGraphModelProperty<,> · ScaffoldApiGraphModelProjection<> · ScaffoldApiGraphModelProjectionProperty<> · ScaffoldApiGraphModelPrimaryKey<> · ScaffoldApiGraphModelIdentity<> · ScaffoldApiGraphModelInheritance<> · ScaffoldApiGraphModelRelationship · ScaffoldApiGraphModelPropertyCqrs
Commands / Enums / Types / Traits
ScaffoldApiGraphCommand · ScaffoldApiGraphCommandProperty · ScaffoldApiGraphEnum · ScaffoldApiGraphEnumValue · ScaffoldApiGraphType · ScaffoldApiGraphTypeProperty · ScaffoldApiGraphTypeConstructor · ScaffoldApiGraphTypeConstructorParameter · ScaffoldApiGraphTypeConstructorAssignment · ScaffoldApiGraphTrait · ScaffoldApiGraphTraitProperty · ScaffoldApiGraphTraitProjection · ScaffoldApiGraphTraitProjectionProperty · ScaffoldApiGraphTraitPrimaryKey
Other Graph
ScaffoldApiGraphApi · ScaffoldApiGraphCollection · ScaffoldApiGraphConversion · ScaffoldApiGraphProperty · ScaffoldApiGraphRateLimit · ScaffoldApiGraphRateLimitInstance · ScaffoldApiGraphRateLimitPartition · ScaffoldApiGraphResponseStatusSet · ScaffoldApiGraphResponseStatusSetItem · ScaffoldApiGraphTraitBehaviour · ScaffoldApiGraphTraitBehaviour<,> · ScaffoldApiGraphTraitBehaviour<,,>
Enums
ScaffoldApiHttpVerb · ScaffoldApiAuthenticationRequirement · ScaffoldApiModelUsage · ScaffoldApiPropertyAccess · ScaffoldApiTypeVisibility · ScaffoldApiPayloadType · ScaffoldApiCommandUseCase · ScaffoldApiControllerActionCapability · ScaffoldApiFilterArrayMode · ScaffoldApiFilterEntityValidation · ScaffoldApiPaginationLimitExceeded · ScaffoldApiUploadStrategy · ScaffoldApiControllerParameterLocation · ScaffoldApiGraphControllerActionRequestType · ScaffoldApiGraphControllerActionResponseType · ScaffoldApiResponseStatusCode · ScaffoldApiUserParameter
Reflected
ScaffoldApiReflectedModel · ScaffoldApiReflectedCommand · ScaffoldApiReflectedTrait
ScaffoldApiModelPropertyNameResolver<T> · ScaffoldApiTraitPropertyNameResolver<T>
Policies
IScaffoldApiNamingPolicy · ScaffoldApiNamingPolicyDefault
Exceptions
ScaffoldApiTypePropertyNotFoundException · ScaffoldDuplicateConversionsException
Attributes
ApiModelAttribute · ApiCommandAttribute
Process Concepts
ScaffoldApiProcessConceptApi · ScaffoldApiProcessConceptCollection · ScaffoldApiProcessConceptController · ScaffoldApiProcessConceptModel · ScaffoldApiProcessConceptModelAbstract · ScaffoldApiProcessConceptCommand · ScaffoldApiProcessConceptEnum · ScaffoldApiProcessConceptType · ScaffoldApiProcessConceptTrait · ScaffoldApiProcessConceptTraitBehaviour · ScaffoldApiProcessConceptRateLimit · ScaffoldApiProcessConceptResponseStatusSet
Carrot.Data.Scaffold.Process.Database
Package: Carrot.Data.Scaffold.Process.Database
Process
ScaffoldDatabaseProcess -- main process; registers 7 concepts: Database · Contexts · Entities · Enums · Abstract · Traits · TraitBehaviours
ScaffoldDatabase -- graph root: Database · Contexts · Entities · Enums · Types · Traits · TraitBehaviours; GetContexts(bool includeFullContext)
ScaffoldDatabaseOptions -- RegisterAllConversions · ReportConfiguration
Define Types
ScaffoldDatabaseDefineDatabase -- declarative single; DatabaseName · ScaffoldImpl(ScaffoldDatabaseConfigureDatabase, ILog?)
ScaffoldDatabaseDefineContext -- declarative; ContextName · Scaffold(ScaffoldDatabaseConfigureContext, ILog?)
ScaffoldDatabaseDefineContextFull -- built-in "Full" context definition
ScaffoldDatabaseDefineEntity<TEntity> -- introspective; EntityType · Scaffold(ScaffoldDatabaseConfigureEntity<TEntity>, ScaffoldDatabaseReflectedEntity, ILog?)
ScaffoldDatabaseDefineAbstract<TEntity> -- introspective abstract; base entity scaffolds applied to all concrete inheritors
ScaffoldDatabaseDefineEnum<TEnum> -- introspective; enum definitions
ScaffoldDatabaseDefineTable -- declarative; raw table definitions
ScaffoldDatabaseDefineType<TType> -- introspective; standalone type definitions
ScaffoldDatabaseDefineTrait<TTrait> -- introspective; trait definitions
ScaffoldDatabaseDefineTraitBehaviour · ScaffoldDatabaseDefineTraitBehaviour<,> · ScaffoldDatabaseDefineTraitBehaviour<,,> -- declarative; trait behaviour definitions
Configure Types
Entity
ScaffoldDatabaseConfigureEntity<TEntity> -- fluent entity config: HasPrimaryKey() · HasAlternateKey() · HasIndex() · Property() · NavigationTo<>() · NavigationLinkTable<,>() · ConfigureTable() · Annotations()
ScaffoldDatabaseConfigureEntityProperty<TEntity, TProperty> -- per-property config
ScaffoldDatabaseConfigureEntityPrimaryKey<TEntity> -- primary key config
ScaffoldDatabaseConfigureEntityAlternateKey<TEntity> -- alternate key config
ScaffoldDatabaseConfigureEntityNavigation<TEntity, TTo> -- FK navigation config
ScaffoldDatabaseConfigureEntityNavigationLinkTable<TEntity, TA, TB> -- many-to-many link table config
Database & Context
ScaffoldDatabaseConfigureDatabase -- database-level config: SetName()
ScaffoldDatabaseConfigureContext -- context-level config
Table
ScaffoldDatabaseConfigureTable -- table naming, schema
ScaffoldDatabaseConfigureTableProperty -- table column config
Properties & Indexes
ScaffoldDatabaseConfigureProperty -- base property config
ScaffoldDatabaseConfigureIndex -- index config (unique, filter, etc.)
ScaffoldDatabaseConfigureSequence -- sequence config
Functions
ScaffoldDatabaseConfigureFunction -- database function config
ScaffoldDatabaseConfigureFunctionParameter -- function parameter config
Enums / Types / Traits
ScaffoldDatabaseConfigureEnum · ScaffoldDatabaseConfigureEnumValue
ScaffoldDatabaseConfigureType
ScaffoldDatabaseConfigureTrait · ScaffoldDatabaseConfigureTraitProperty · ScaffoldDatabaseConfigureTraitPrimaryKey · ScaffoldDatabaseConfigureTraitNavigation · ScaffoldDatabaseConfigureTraitNavigationLinkTable
ScaffoldDatabaseConfigureTraitBehaviour · ScaffoldDatabaseConfigureTraitBehaviour<,> · ScaffoldDatabaseConfigureTraitBehaviour<,,>
Interfaces
IScaffoldDatabaseConfigureEntityNavigation · IScaffoldDatabaseConfigureTraitNavigation
Graph Types
Entity
ScaffoldDatabaseGraphEntity · ScaffoldDatabaseGraphEntity<TEntity> -- entity graph with properties, navigations, primary key, alternate keys, indices, foreign keys, table, disclosure
ScaffoldDatabaseGraphEntityProperty · ScaffoldDatabaseGraphEntityProperty<TEntity, TProperty> -- typed entity property
ScaffoldDatabaseGraphEntityForeignKey -- FK reference
Navigations
ScaffoldDatabaseGraphEntityNavigation · ScaffoldDatabaseGraphEntityNavigationBase · ScaffoldDatabaseGraphEntityNavigationReturn
ScaffoldDatabaseGraphEntityNavigationLinkTable · ScaffoldDatabaseGraphEntityNavigationLinkTableSide · ScaffoldDatabaseGraphEntityNavigationLinkTableReturn
Navigation Shortcuts
ScaffoldDatabaseGraphEntityNavigationShortcut · ScaffoldDatabaseGraphEntityNavigationShortcutBase · ScaffoldDatabaseGraphEntityNavigationShortcutCollection · ScaffoldDatabaseGraphEntityNavigationShortcutStep
Database & Context
ScaffoldDatabaseGraphDatabase -- database graph
ScaffoldDatabaseGraphContext · ScaffoldDatabaseGraphContextBase -- context graph with disclosure and naming
Schema Objects
ScaffoldDatabaseGraphTable · ScaffoldDatabaseGraphTableProperty -- table/column graph
ScaffoldDatabaseGraphPrimaryKey · ScaffoldDatabaseGraphAlternateKey -- key graph
ScaffoldDatabaseGraphIndex -- index graph
ScaffoldGraphForeignKey · ScaffoldDatabaseGraphEntityForeignKey -- FK graph
ScaffoldDatabaseGraphProperty -- base property graph
ScaffoldDatabaseGraphConversion -- value conversion graph
ScaffoldDatabaseGraphSequence -- sequence graph
ScaffoldDatabaseGraphFunction -- function graph
ScaffoldDatabaseGraphCollation -- collation graph
Enums / Types / Traits
ScaffoldDatabaseGraphEnum · ScaffoldDatabaseGraphEnumValue
ScaffoldDatabaseGraphType
ScaffoldDatabaseGraphTrait · ScaffoldDatabaseGraphTrait<,> · ScaffoldDatabaseGraphTrait<,,> · ScaffoldDatabaseGraphTraitProperty · ScaffoldDatabaseGraphTraitNavigation · ScaffoldDatabaseGraphTraitNavigationLinkTable · ScaffoldDatabaseGraphTraitForeignKey · ScaffoldDatabaseGraphTraitBehaviour · ScaffoldDatabaseGraphTraitBehaviour<,> · ScaffoldDatabaseGraphTraitBehaviour<,,>
Enums
ScaffoldDatabaseGraphEntityPropertyType · ScaffoldDatabaseGraphEntityPropertyScope · ScaffoldDatabaseGraphPrimaryKeyGeneration · ScaffoldDatabaseConfigureEntityNavigationScope · ScaffoldDatabaseFunctionType · ScaffoldDeleteBehavior · ScaffoldGraphNavigationCardinality · ScaffoldGraphNavigationCardinalityOutward · ScaffoldGraphNavigationCardinalityReturn · ScaffoldGraphNavigationKindReturn · ScaffoldGraphTableKind
Graph Interfaces
IScaffoldDatabaseGraph · IScaffoldDatabaseGraphContext · IScaffoldDatabaseGraphEntity · IScaffoldDatabaseGraphEntityProperty · IScaffoldDatabaseGraphEntityForeignKey · IScaffoldDatabaseGraphEnum · IScaffoldDatabaseGraphEnumValue · IScaffoldDatabaseGraphItem · IScaffoldDatabaseGraphNavigation · IScaffoldDatabaseGraphProperty · IScaffoldDatabaseGraphTable · IScaffoldDatabaseGraphTableProperty · IScaffoldDatabaseGraphTrait · IScaffoldDatabaseGraphTraitBehaviour · IScaffoldDatabaseGraphTraitProperty · IScaffoldDatabaseGraphTraitNavigation · IScaffoldDatabaseGraphTraitForeignKey · IScaffoldDatabaseGraphForeignKey · IScaffoldDatabaseDiscloseable
Graph Builders
ScaffoldDatabaseGraphContextBuilder · ScaffoldDatabaseGraphDatabaseBuilder · ScaffoldDatabaseGraphEntityBuilder · ScaffoldDatabaseGraphEntityPropertyBuilder · ScaffoldDatabaseGraphTableBuilder · ScaffoldDatabaseGraphTraitBuilder · ScaffoldDatabaseGraphTraitPropertyBuilder
Graph Providers
ScaffoldGraphEntityProvider · ScaffoldGraphTableProvider · ScaffoldGraphPropertyProvider · ScaffoldGraphForeignKeyProvider · ScaffoldGraphIndexProvider · ScaffoldGraphEntityNavigationProvider · ScaffoldGraphEntityNavigationShortcutProvider · ScaffoldGraphContextProvider · ScaffoldGraphEnumProvider · ScaffoldGraphTraitProvider · ScaffoldGraphTraitNavigationProvider · ScaffoldGraphSequenceProvider · ScaffoldGraphFunctionProvider · ScaffoldGraphFunctionParameterProvider · ScaffoldGraphCollationProvider · ScaffoldGraphAlternateKeyProvider · ScaffoldGraphCheckConstraintProvider · ScaffoldDatabaseGraphConversionProvider · ScaffoldDatabaseGraphEnumValuesProvider
Reflected
ScaffoldDatabaseReflectedEntity · ScaffoldDatabaseReflectedTrait
ScaffoldDatabaseEntityPropertyNameResolver<T> · ScaffoldDatabaseTraitPropertyNameResolver<T>
Models
ScaffoldIndexProperty · ScaffoldTableSchema · ScaffoldTemporal · ScaffoldUniqueConstraint
Naming Policy
IScaffoldDatabaseNamingPolicy · ScaffoldDatabaseNamingPolicyDefault
Naming inputs: AlternateKeyInput · CheckConstraintInput · ColumnInput · DbSetInput · DefaultConstraintInput · ForeignKeyInput · HistoryTableInput · IndexInput · PrimaryKeyInput · SchemaInput · SequenceInput · TableInput · TemporalPeriodInput · TriggerInput · UniqueConstraintInput
IdentifierCase · NameScope · ProviderKind · TruncationStyle
Process Concepts
ScaffoldDatabaseProcessConceptDatabase · ScaffoldDatabaseProcessConceptContext · ScaffoldDatabaseProcessConceptEntity · ScaffoldDatabaseProcessConceptEnum · ScaffoldDatabaseProcessConceptAbstract · ScaffoldDatabaseProcessConceptTrait · ScaffoldDatabaseProcessConceptTraitBehaviour
Exceptions
ScaffoldAlternateKeyException · ScaffoldConfigTypeNotFoundException · ScaffoldDuplicateConversionsException · ScaffoldEntityPropertyNotFound · ScaffoldGraphCompositeForeignKeyException
Carrot.Data.Scaffold.Process.Cloud
Package: Carrot.Data.Scaffold.Process.Cloud
Process
ScaffoldCloudProcess -- main process (placeholder); extends ScaffoldProcess<ScaffoldCloud, ScaffoldCloudOptions>; no concepts registered yet
ScaffoldCloud -- graph root (empty); ready for cloud resource collections
ScaffoldCloudOptions -- ReportConfiguration
Carrot.Data.Scaffold.Process.Integrations
Package: Carrot.Data.Scaffold.Process.Integrations
Process
ScaffoldIntegrationsProcess -- main process (placeholder); extends ScaffoldProcess<ScaffoldIntegrations, ScaffoldIntegrationsOptions>; no concepts registered yet
ScaffoldIntegrations -- graph root (empty); ready for integration concept collections
ScaffoldIntegrationsOptions -- ReportConfiguration