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/not-mapped.ejs

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

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

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

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

NotMapped
[NotMapped] Può essere applicato ad una proprietà o ad una classe che deve essere esclusa dalla generazione del modello e non deve generare la corrispondente colonna/tabella nel database. Per ulteriori informazioni fare riferimento alla documentazione ufficiale.

Per generare questa annotazione

annotations:
  - name: not-mapped
    namespace: https://schemacodearchitects.blob.core.windows.net/templates/entityfwk/