The RootConfig object defines the global properties that are used to drive the underlying database-driven CDC-oriented code-generation.
The Root object supports a number of properties that control the generated code output. These properties are separated into a series of logical categories.
| Category | Description |
|---|---|
Key |
Provides the key configuration. |
Identifier |
Provides the Identifier configuration. |
Infer |
Provides the special Column Name inference configuration. |
.NET |
Provides the .NET configuration. |
Event |
Provides the event configuration. |
Outbox |
Provides the outbox configuration. |
Path |
Provides the Path (Directory) configuration for the generated artefacts. |
Namespace |
Provides the .NET Namespace configuration for the generated artefacts. |
Collections |
Provides related child (hierarchical) configuration. |
The properties with a bold name are those that are more typically used (considered more important).
Provides the key configuration.
| Property | Description |
|---|---|
schema |
The default Schema name where the existing tables are defined within the database.† This is used as the default Schema for all child objects. Defaults to dbo (literal). |
cdcSchema |
The schema name for the ntangle generated CDC-related database artefacts.† Defaults to NTangle (literal). |
cdcSchemaCreate |
Indicates whether to create the CdcSchema within the database.† Defaults to false. |
versionTrackingTable |
The table name for the Cdc-VersionTracking.† Defaults to VersionTracking (literal). |
cdcEnable |
Indicates whether to enable Cdc within the database for the tables that participate.† Defaults to false. This option can be overridden for each underlying table referenced. |
outboxSchemaCreate |
Indicates whether to create the OutboxSchema within the database.† Defaults to false. |
Provides the Identifier configuration.
| Property | Description |
|---|---|
identifierMapping |
Indicates whether to include the generation of the generic CDC-IdentifierMapping database capabilities.† Where set to true each underlying Table and corresponding Join must set IdentifierMapping explicitly. |
identifierMappingType |
The type for the identifier mapping value. Valid options are: String, Int, Long, Guid.† Defaults to String. |
identifierMappingTable |
The table name for the Cdc-IdentifierMapping.† Defaults to IdentifierMapping (literal). |
identifierMappingStoredProcedure |
The stored procedure name for the Cdc-IdentifierMapping create.† Defaults to spIdentifierMappingCreate (literal). |
Provides the special Column Name inference configuration.
| Property | Description |
|---|---|
isDeletedColumn |
The column name for the IsDeleted (logical delete) capability (if any).† Defaults to IsDeleted. |
Provides the .NET configuration.
| Property | Description |
|---|---|
autoDotNetRename |
The option to automatically rename the SQL Tables and Columns for use in .NET. Valid options are: None, PascalCase, SnakeKebabToPascalCase.† Defaults to SnakeKebabToPascalCase which will remove any underscores or hyphens separating each word and capitalize the first character of each; e.g. internal-customer_id would be renamed as InternalCustomerId. The PascalCase option will capatilize the first character only. |
excludeColumnsFromETag |
The default list of Column names that should be excluded from the generated ETag (used for the likes of duplicate send tracking) |
Provides the event configuration.
| Property | Description |
|---|---|
eventSubjectRoot |
The root for the event name by prepending to all event subject names via CDC. † Used to enable the sending of messages to the likes of EventHubs, Service Broker, Kafka, etc. |
eventSubjectFormat |
The default formatting for the Subject when an Event is published via CDC. Valid options are: NameOnly, NameAndKey, NameAndTableKey.† Defaults to NameOnly. |
eventActionFormat |
The formatting for the Action when an Event is published via CDC. Valid options are: None, PastTense.† Defaults to None (no formatting required, i.e. as-is). |
eventSourceKind |
The URI kind for the event source URIs for CDC. Valid options are: None, Absolute, Relative, RelativeOrAbsolute.† Defaults to Relative (being a relative path). |
eventSourceRoot |
The URI root for the event source by prepending to all event source URIs for CDC. † The event source is only updated where an EventSourceKind is not None. |
eventSourceFormat |
The default formatting for the Source when an Event is published via CDC. Valid options are: NameOnly, NameAndKey, NameAndTableKey.† Defaults to NameAndTableKey (being the child Cdc.ModelName appended with the corresponding table key). |
eventTypeRoot |
The root for the event type by prepending to all event type names via CDC. † Used to enable the sending of messages to the likes of EventHubs, Service Broker, Kafka, etc. Defaults to EventSubjectRoot. |
Provides the outbox configuration.
| Property | Description |
|---|---|
outbox |
Indicates whether to generate the event outbox SQL and .NET artefacts. † Defaults to false. |
outboxSchema |
The schema name of the event outbox table. † Defaults to Outbox (literal). |
outboxTable |
The name of the event outbox table. † Defaults to EventOutbox (literal). |
outboxEnqueueStoredProcedure |
The stored procedure name for the event outbox enqueue. † Defaults to spEventOutboxEnqueue (literal). |
outboxDequeueStoredProcedure |
The stored procedure name for the event outbox dequeue. † Defaults to spEventOutboxDequeue (literal). |
Provides the Path (Directory) configuration for the generated artefacts.
| Property | Description |
|---|---|
pathBase |
The base path (directory) prefix for the Database-related artefacts; other Path* properties append to this value when they are not specifically overridden.† Defaults to AppName (runtime parameter). For example Avanade.Application. |
pathDatabase |
The root path (directory) for the Database-related artefacts. † Defaults to PathBase + .Database (literal). For example Avanade.Application.Database. |
pathDatabaseSchema |
The path (directory) for the Schema Database-related artefacts. † Defaults to PathDatabase + /Schema (literal). For example Avanade.Application.Database/Schema. |
pathDatabaseMigrations |
The path (directory) for the Schema Database-related artefacts. † Defaults to PathDatabase + /Migrations (literal). For example Avanade.Application.Database/Migrations. |
pathDotNetPublisher |
The path (directory) for the CDC-related (.NET) artefacts. † Defaults to PathBase + .Publisher (literal). For example Avanade.Application.Publisher. |
pathSidecarDatabase |
The path (directory) for the Schema Database-related artefacts. † Defaults to PathBase + .SidecarDb (literal). For example Avanade.Application.SidecarDb. |
pathSidecarDatabaseSchema |
The path (directory) for the Schema Database-related artefacts. † Defaults to PathSidecarDatabase + /Schema (literal). For example Avanade.Application.SidecarDb/Schema. |
pathSidecarDatabaseMigrations |
The path (directory) for the Schema Database-related artefacts. † Defaults to PathSidecarDatabase + /Migrations (literal). For example Avanade.Application.SidecarDb/Migrations. |
Provides the .NET Namespace configuration for the generated artefacts.
| Property | Description |
|---|---|
namespaceBase |
The base Namespace (root) for the .NET artefacts. † Defaults to AppName (runtime parameter). For example Avanade.Application. |
namespacePublisher |
The Namespace (root) for the CDC-related Publisher .NET artefacts. † Defaults to NamespaceBase + .Publisher (literal). For example Avanade.Application.Publisher. |
namespaceOutbox |
The Namespace (root) for the Outbox-related Publisher .NET artefacts. † Defaults to NamespacePublisher. |
Provides related child (hierarchical) configuration.
| Property | Description |
|---|---|
tables |
The corresponding Table collection.† A Table object provides the primary database table configuration for Change Data Capture (CDC), including multiple child table joins to form a composite entity. |