Le annotazioni sono degli attributi che possono essere applicati ad una entità o alle sue proprietà.

Le annotations hanno tre proprietà:

  • name: indica il nome del template (è possibile omettere l’estensione).
  • namespace: indica l’url su cui è presente il template (omettere il nome del template).
  • value: indica il valore dell’attributo (opzionale).

Nell’esempio sottostante, il template verrà scaricato dall’url https://schemacodearchitects.blob.core.windows.net/templates/entityfwk/complex-type.ejs

entities:
  - name: Category
    description: The product category
    useRepository: true
    repositoryName: Category
    annotations:
      - name: complex-type
        namespace: https://schemacodearchitects.blob.core.windows.net/templates/entityfwk/
    fields:
      - name: name
        type: string
        description: The name of the category

Questo andrà a generare una classe Category alla quale sarà applicato l’attributo ComplexType. La classe, inoltre, conterrà una proprietà Name.

using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace Ca.ShoppingCart.Store.Domain.Model
{
  /// <summary>
  /// The product category
  /// </summary>
  [ComplexType]
  public partial class Category : EntityBase
  {
    /// <summary>
    /// The name of the category
    /// </summary>
    public string Name
    {
      get;
      set;
    }
  }
}

ComplexType
[ComplexType] Può essere applicato ad una classe per marcarla come tipo complesso. Per ulteriori informazioni fare riferimento alla documentazione ufficiale.

Per generare questa annotazione

annotations:
  - name: complex-type
    namespace: https://schemacodearchitects.blob.core.windows.net/templates/entityfwk/