ECDbMap (ECDb DB Mapping) Schema

Alias: ecdbmap

Version: 2.0.1

Custom attributes that customize ECDb's ECSchema to database mapping.

Table of contents

DbIndex Sealed StructClass

Specify a database index for an ECClass.

Properties

Name Description Label Category Read Only Priority
Name Name of the index. Must follow EC identifier rules. It needs to be globally unique in the database. false 0
IsUnique Default: false. If true, all values in the indexed properties must be unique. false 0
Properties List of properties that make up the index. Only properties of primitive type are supported. false 0
Where Where constraint for index false 0

Custom Attribute Classes

ClassMap Sealed CustomAttributeClass

Applies to: EntityClass, RelationshipClass

Properties

Name Description Label Category Read Only Priority
MapStrategy Defines how the ECClass is mapped to table(s). Values: OwnTable (default), TablePerHierarchy, ExistingTable, NotMapped false 0
TableName If MapStrategy is 'ExistingTable' provide the table name here. Must not be set in all other cases. false 0
ECInstanceIdColumn Optionally specify the name of custom 'primary key' column which must be of type Int64. false 0

DbIndexList Sealed CustomAttributeClass

Applies to: EntityClass, RelationshipClass

Properties

Name Description Label Category Read Only Priority
Indexes List of indexes on properties of this class. It can be use to improve query performance or to add unique constraint. false 0

ForeignKeyConstraint Sealed CustomAttributeClass

Creates a foreign key for this navigation property.

Applies to: NavigationProperty

Properties

Name Description Label Category Read Only Priority
OnDeleteAction Possible values: NoAction (default), Cascade (which deletes child rows when parent row is deleted), SetNull(foreign key property in child is set to NULL), Restrict (cannot delete parent if it still has children). false 0
OnUpdateAction Possible values: NoAction (default), Cascade (which updates child foreign key when parent primary key is updated). false 0

JoinedTablePerDirectSubclass Sealed CustomAttributeClass

Maps subclasses and their children to a joined table. Can only be applied to classes in a hierarchy using MapStrategy TablePerHierarchy.

Applies to: EntityClass

LinkTableRelationshipMap Sealed CustomAttributeClass

Applies to: RelationshipClass

Properties

Name Description Label Category Read Only Priority
SourceECInstanceIdColumn Optional. If not set, a default column name will be used false 0
TargetECInstanceIdColumn Optional. If not set, a default column name will be used false 0
CreateForeignKeyConstraints Default: true. If set to false, no foreign key constraints are created on the link table. In that case, deleting instance does not delete its relationships in the link table. false 0
AllowDuplicateRelationships Default: false. If set to true duplicate relationships are allowed. false 0

PropertyMap Sealed CustomAttributeClass

Applies to: PrimitiveProperty

Properties

Name Description Label Category Read Only Priority
ColumnName If not specified, the ECProperty name is used. It must follow EC Identifier specification. false 0
IsNullable If false, values must not be unset for this property. false 0
IsUnique Only allow unique values for this property. false 0
Collation Specifies how string comparisons should work for this property. Possible values: Binary (default): bit to bit matching. NoCase: The same as binary, except that the 26 upper case characters of ASCII are folded to their lower case equivalents before comparing. Note that it only folds ASCII characters. RTrim: The same as binary, except that trailing space characters are ignored. false 0

SchemaMap Sealed CustomAttributeClass

Applies to: Schema

Properties

Name Description Label Category Read Only Priority
TablePrefix Specifies a prefix for generated tables. If not specified, the alias of the ECSchema is used false 0

ShareColumns Sealed CustomAttributeClass

Allows to share columns amongst ECProperties. Can only be applied to MapStrategy TablePerHierarchy

Applies to: EntityClass, RelationshipClass

Properties

Name Description Label Category Read Only Priority
ApplyToSubclassesOnly False (Default):Columns are shared for the properties of the ECClass to which this CA is applied and all its subclasses. True: Columns are not shared for this ECClass but for all of its subclasses. false 0
MaxSharedColumnsBeforeOverflow Maximum number of shared columns to use before using an overflow table (optional). If not specified, ECDb will create as many shared columns until the table has 63 columns. false 0

Last Updated: 23 January, 2023