| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- using System;
- using System.Collections.Generic;
- using System.ComponentModel.DataAnnotations;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- // Attention à l'espace de nom, lors de la création d'une nouvelle classe celui-ci sera par défaut :
- // namespace CD67.ModeleMVC.Entity.Extend
- // Alors que pour étendre une classe il faut être dans le même namespace que l'original
- namespace CD67.ModeleMVC.Entity
- {
- /// <summary>
- /// Classe d'extension de celle d'Entity, nécessaire pour y associer les Metadata
- /// </summary>
- [MetadataType(typeof(EXEMPLE_VIKINGS_Metadata))]
- public partial class EXEMPLE_VIKINGS
- {
- //Peut contenir une extension utile à la classe (méthode static ou non, nouvelles propriétés, propriétés construites dynamiquement selon d'autres de la classe, etc.)
- //Exemples de 2 propriétés booléennes qui ont en base de données 0 ou 1
- public Nullable<int> alwaysYes
- {
- get { return 1; }
- set { this.alwaysYes = value; }
- }
- public Nullable<int> alwaysNo
- {
- get { return 0; }
- set { this.alwaysNo = value; }
- }
- //Exemple d'un sous-type fictif pour les listes imbriquées
- public int ID_SOUS_TYPE { get; set; }
- }
- /// <summary>
- /// Classe contenant les DataAnnotations pour chaque champ
- /// </summary>
- public class EXEMPLE_VIKINGS_Metadata
- {
- [Required]
- [Display(Name = "Clé")]
- public int ID { get; set; }
- [Required]
- [Display(Name = "Nom")]
- [StringLength(255)]
- public string NOM { get; set; }
- [Required]
- [Display(Name = "Type")]
- public int ID_TYPE { get; set; }
- [Display(Name = "Sous type", Description = "Valeur non enregistrée")]
- public int ID_SOUS_TYPE { get; set; }
- [Display(Name = "Description")]
- [StringLength(255)]
- [DataType(DataType.MultilineText)]
- public string DESCRIPTION { get; set; }
- [Display(Name = "Date inutile")]
- [DataType(DataType.Date)]
- public Nullable<System.DateTime> DATE_INUTILE { get; set; }
- //Propriétés ajoutées dans la classe partielle et qui utilise un affichage customisé MVC "YesNo", qui se trouve ici : "Views\Shared\DisplayTemplates" et "Views\Shared\EditorTemplates"
- [Display(Name = "A faim?", Description = "Toujours oui")]
- [Range(0, 1)]
- [UIHint("YesNoInt")]
- public Nullable<int> alwaysYes;
- [Display(Name = "Intellectuel?", Description = "Toujours non")]
- [Range(0, 1)]
- [UIHint("YesNoInt")]
- public Nullable<int> alwaysNo;
- }
- }
|