0% ont trouvé ce document utile (0 vote)
34 vues3 pages

Fluent API Et Annotations EFCore

Le document présente les configurations d'entités et les annotations de données dans Entity Framework Core. Il décrit les méthodes pour configurer les entités, gérer les relations, définir des contraintes et initialiser des données, ainsi que les annotations pour spécifier des propriétés comme les clés primaires et les contraintes de validation. Les exemples fournis illustrent l'utilisation de Fluent API et de Data Annotations pour la modélisation des données.

Transféré par

amani sayari
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
34 vues3 pages

Fluent API Et Annotations EFCore

Le document présente les configurations d'entités et les annotations de données dans Entity Framework Core. Il décrit les méthodes pour configurer les entités, gérer les relations, définir des contraintes et initialiser des données, ainsi que les annotations pour spécifier des propriétés comme les clés primaires et les contraintes de validation. Les exemples fournis illustrent l'utilisation de Fluent API et de Data Annotations pour la modélisation des données.

Transféré par

amani sayari
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Fluent API et Data Annotations - Entity Framework

Core

1. Configuration de l’entité
Méthode Description Exemple
Entity<TEntity>() Configure une entité modelBuilder.Entity<Student>()

2. Mappage Table / Schéma


Méthode Description Exemple
ToTable() Définit le nom de la table .ToTable("Students")
ToTable(nom, schéma) Table + schéma .ToTable("Students", "dbo")

3. Clés primaires et alternatives


HasKey() Définit la clé primaire .HasKey(e => e.Id)
HasAlternateKey() Clé alternative unique .HasAlternateKey(e => e.Email)

4. Propriétés
Property() Accès à une propriété .Property(p => p.Nom)
HasColumnName() Renomme la colonne .HasColumnName("FullName")
HasColumnType() Type SQL .HasColumnType("nvarchar(100)")
HasMaxLength() Longueur max .HasMaxLength(50)
IsRequired() Valeur obligatoire .IsRequired()
HasDefaultValue() Valeur par défaut .HasDefaultValue(true)
HasPrecision() Précision décimale .HasPrecision(10, 2)
ValueGeneratedOnAdd() Auto incrément .ValueGeneratedOnAdd()

5. Relations
One-to-Many Relation 1-N HasOne(e => e.Classe).WithMany(c => c.Etudi
One-to-One Relation 1-1 HasOne(e => e.Adresse).WithOne(a => a.Etudian
Many-to-Many Relation N-N HasMany(e => e.Cours).WithMany(c => c.Etudian

6. Index
HasIndex() Crée un index .HasIndex(e => e.Email)
IsUnique() Index unique .HasIndex(e => e.Email).IsUnique()

7. Comportement de suppression
OnDelete() Définit le comportement .OnDelete(DeleteBehavior.Cascade)

8. Contraintes
HasCheckConstraint() Ajoute une contrainte SQL .HasCheckConstraint("CK_Age", "Age >= 18")

9. Types possédés et Ignore


OwnsOne() Type possédé (Value Object) .OwnsOne(p => p.Adresse)
Ignore() Ignore une propriété .Ignore(p => p.TempValue)

10. Données initiales


HasData() Insertion initiale .HasData(new Student { Id=1, Nom="Amani" })
Data Annotations - Entity Framework Core
Annotation Description Exemple
[Key] Spécifie la clé primaire [Key] public int Id { get; set; }
[Required] Rend le champ obligatoire (NOT NULL) [Required] public string Nom { get; set; }
[MaxLength(50)] Longueur maximale de la chaîne [MaxLength(50)] public string Nom { get; se
[MinLength(5)] Longueur minimale de la chaîne [MinLength(5)] public string Nom { get; set;
[StringLength(100)] Longueur maximale de chaîne (avec message possible)
[StringLength(100, ErrorMessage="Trop lo
[Column("FullName")] Renomme la colonne dans la base [Column("FullName")] public string Nom { g
[Table("Etudiants")] Renomme la table [Table("Etudiants")] public class Student
[ForeignKey("ClasseId")] Spécifie la clé étrangère [ForeignKey("ClasseId")] public Classe Cla
[InverseProperty("Etudiants")]Indique la relation inverse [InverseProperty("Etudiants")] public Class
[NotMapped] Ignore la propriété dans la BDD [NotMapped] public string TempValue { ge
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
Valeur générée automatiquement [DatabaseGenerated(DatabaseGeneratedO
[ConcurrencyCheck] Vérifie la concurrence des mises à jour [ConcurrencyCheck] public string Email { g
[Timestamp] Colonne utilisée pour le suivi de version [Timestamp] public byte[] RowVersion { ge
[Index(nameof(Email), IsUnique
Crée
= true)]
un index unique [Index(nameof(Email), IsUnique = true)] pu

Vous aimerez peut-être aussi