Search Results for

      Show / Hide Table of Contents

      Intent.Metadata.DocumentDB

      This module provides Domain Designer metadata and scripting support for Document DB-oriented modules.

      Domain Designer Modeling

      The Domain Designer has been extended with several stereotypes for modeling Document DB technology-specific concepts in your domain.

      Document Database - Package Stereotype

      The Document Database stereotype is applied to a Domain Package and configures it to use the Document DB modeling paradigm.

      The stereotype may be applied automatically but can also be applied manually to Domain Packages if required.

      This stereotype includes a Provider property, which specifies which specific type of Document DB technology the Domain Package should be realized in. The available options in the drop-down are as follows:

      • Default (None selected): If no provider is specified and you have a single Document DB provider module installed (e.g., Intent.CosmosDB), that module will be used by default.
      • Custom: The backing implementation must be implemented through custom code.
      • Dynamic installed module providers (e.g., CosmosDB, MongoDB, Dapr): Any Document DB provider-implementing modules will show as options here.

      If you have multiple Document DB technologies, you must configure which Domain Packages are mapped to which Document DB technologies.

      Document Database

      Primary Key - Attribute Stereotype

      The Primary Key stereotype indicates that an Attribute is the document's primary key.

      By default, any Class added to your domain will have an Attribute named Id with the Primary Key stereotype applied.

      This stereotype is visualized with a golden key icon.

      Primary Key Visual

      Primary Key Type

      The default type for the Primary Key is Object ID (string). This can be changed using the Document Database > Id Type application setting.

      The available options are:

      • Object ID (string) - the default
      • GUID

      Primary Key Type

      Primary Key Creation

      The default behavior for Primary Key creation is that it will be applied to all entities (with the exception of child entities with one-to-one relationships).

      This behavior can be modified using the Document Database > Key Creation Mode application setting.

      The available options are:

      • All - The default. All modeled entities, except for child entities with one-to-one relationships, will automatically be assigned a Primary Key.
      • Only on Documents - Only parent entities (no child entities) will automatically be assigned a Primary Key.

      Visual example of an All modeled one-to-many relationship where the child entity (OrderItem) has a Primary Key:

      Child Primary Key

      Visual example of an Only on Documents modeled one-to-many relationship where the child entity (OrderItem) does not have a Primary Key:

      Child Primary Key

      Note

      The Create CRUD CQRS Operations accelerator in the Service Designer requires that an entity has a Primary Key (i.e., that the Key Creation Mode is set to All). If a child entity does not have a Primary Key, it will not be available for selection when using the Create CRUD CQRS Operations accelerator.

      Foreign Key - Attribute Stereotype

      The Foreign Key stereotype indicates that an Attribute has been introduced to a Class as a result of a modeled Association. For example:

      Foreign Key Visual

      In this diagram, you can see that the CustomerId attribute has been introduced, with the Foreign Key stereotype, as a result of the many-to-one relationship between Basket and Customer.

      In the Document DB paradigm, associations between different aggregate roots are denoted by dotted-line associations, as these are references between documents.

      The Foreign Key stereotype is automatically managed when modeling associations. This stereotype is visualized with a silver key icon.

      Compositional Relationship

      This is the default relationship when modeling an Association and is represented by a black diamond on the source end of the relationship and a solid line between the two entities.

      With this relationship, the child entity is considered a part of the parent entity and cannot exist without it.

      In this example, an OrderItem has a Compositional Relationship with Order and cannot exist independently of an Order. It is considered part of the Order.

      Compositional Relationship

      Aggregational Relationship

      When the Source End of the Association has been set as Is Nullable, the relationship is considered an Aggregational Relationship. This is represented by a white diamond on the source end of the relationship and a dotted line between the two entities.

      This relationship is modeled by setting the Is Nullable property of the Source End of the Association to true. In this case, the "child" entity can exist independently of the "parent" entity.

      In this example, an Address has an Aggregational Relationship with Order and can exist independently of an Order.

      Aggregational Relationship

      • Edit this page
      ☀
      ☾
      In this article
      Back to top Copyright © 2017-, Intent Architect Holdings Ltd