Skip to content

Latest commit

 

History

History
118 lines (88 loc) · 7.46 KB

table.md

File metadata and controls

118 lines (88 loc) · 7.46 KB

'Table' object (database-driven)

The Table object enables the definition of the primary table, one-or-more child tables and their respective join relationships, to enable Change Data Capture (CDC) event publishing. The IncludeColumns and ExcludeColumns provide a shorthand to include or exclude selected columns; with the AliasColumns providing a means to rename where required.


Property categories

The Table 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.
Columns Provides the Columns configuration.
Database Provides the database configuration.
.NET Provides the .NET configuration.
Event Provides the event configuration.
Infer Provides the special Column Name inference configuration.
IdentifierMapping Provides the identifier mapping configuration.
Collections Provides related child (hierarchical) configuration.

The properties with a bold name are those that are more typically used (considered more important).


Key

Provides the key configuration.

Property Description
name The name of the primary table. [Mandatory]
schema The default schema name used where not otherwise explicitly specified.
† Defaults to Root.Schema.
table The name of the primary table.
† Defaults to Name. This is used to specify the actual underlying database table name (required where the Name has been changed to enable uniqueness).
alias The table alias name (must be unique).
† Will automatically default where not specified; for example a table named Person will default to p.

Columns

Provides the Columns configuration.

Property Description
includeColumns The list of Column names to be included in the underlying generated output.
† Where not specified this indicates that all Columns are to be included.
excludeColumns The list of Column names to be excluded from the underlying generated output.
† Where not specified this indicates no Columns are to be excluded.
aliasColumns The list of Column and Alias pairs (split by a ^ lookup character) to enable column aliasing/renaming.
† Each alias value should be formatted as Column + ^ + Alias; e.g. PCODE^ProductCode.

Database

Provides the database configuration.

Property Description
executeStoredProcedure The CDC execute batch stored procedure name.
† Defaults to sp (literal) + Name + BatchExecute (literal); e.g. spNameBatchExecute.
completeStoredProcedure The CDC complete batch stored procedure name.
† Defaults to sp (literal) + Name + BatchComplete (literal); e.g. spNameBatchComplete.
resetStoredProcedure The CDC reset batch stored procedure name.
† Defaults to sp (literal) + Name + BatchReset (literal); e.g. spNameBatchReset.
trackingStoredProcedure The CDC tracking (Sidecar only) batch stored procedure name.
† Defaults to sp (literal) + Name + BatchTracking (literal); e.g. spNameBatchTracking.
cdcSchema The schema name for the generated CDC-related database artefacts.
† Defaults to Root.CdcSchema.
batchTrackingTable The corresponding CDC Batch tracking table name.
† Defaults to Name + BatchTracking (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.

.NET

Provides the .NET configuration.

Property Description
model The .NET model name.
† Defaults to Name.
orchestratorCtorParams The list of additional (non-default) Dependency Injection (DI) parameters for the generated CDC Orchestrator constructor.
† Each constructor parameter should be formatted as Type + ^ + Name; e.g. IConfiguration^Config. Where the Name portion is not specified it will be inferred.
database The .NET database IDatabase Type name used in the constructor for Dependency Injection (DI).
† Defaults to IDatabase.
includeColumnsOnDelete The list of Column names that should be included (in addition to the primary key) for a logical delete.
† Where a column is not specified in this list its corresponding .NET property will be automatically cleared by the CdcDataOrchestrator as the data is technically considered as non-existing.
excludeColumnsFromETag The list of Column names that should be excluded from the generated ETag (used for the likes of duplicate send tracking).
† Defaults to Root.CdcExcludeColumnsFromETag.
tenantIdColumns The list of Column names that represent the tenant identifier.
partitionKey The partition key.
† A partition key can be specified using either PartitionKey or PartitionKeyColumns.
partitionKeyColumns The list of Column names that represent the partition key.
† A partition key can be specified using either PartitionKey or PartitionKeyColumns.

Event

Provides the event configuration.

Property Description
eventSource The Event Source.
† Defaults to Schema + / (literal) + Name (as lowercase). Note: when used in code-generation the Root.EventSourceRoot will be prepended where specified.
eventSourceFormat The default formatting for the Source when an Event is published. Valid options are: NameOnly, NameAndKey, NameAndTableKey.
† Defaults to Root.EventSourceFormat.
eventSubject The Event Subject.
† Defaults to ModelName. Note: when used in code-generation the Root.EventSubjectRoot will be prepended where specified.
eventSubjectFormat The default formatting for the Subject when an Event is published. Valid options are: NameOnly, NameAndKey, NameAndTableKey.
† Defaults to Root.EventSubjectFormat.
eventType The Event Type.
† Defaults to ModelName. Note: when used in code-generation the Root.EventTypeRoot will be prepended where specified.

Infer

Provides the special Column Name inference configuration.

Property Description
isDeletedColumn The column name for the IsDeleted (logical delete) capability (if any).
† Defaults to Root.ColumnIsDeleted.

IdentifierMapping

Provides the identifier mapping configuration.

Property Description
identifierMapping Indicates whether to perform Identifier Mapping (mapping to GlobalId) for the primary key.
† This indicates whether to create a new GlobalId property on the entity to house the global mapping identifier to be the reference outside of the specific database realm as a replacement to the existing primary key column(s).

Collections

Provides related child (hierarchical) configuration.

Property Description
joins The corresponding Join collection.
† A Join object provides the configuration for a table join.
where The corresponding Where collection.
† A Where object provides the configuration for a table where clause.
mappings The corresponding TableMapping collection.