using EPAServeur.Models.EP; using EPAServeur.Models.Formation; using EPAServeur.Models.Notes; using EPAServeur.Models.SaisieChamp; using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace EPAServeur.Context { public class EpContext : DbContext { public EpContext(DbContextOptions options): base(options) { } //EP public DbSet AugmentationSalaire { get; set; } public DbSet ChoixTypeEntretien { get; set; } public DbSet DemandeDelegation { get; set; } public DbSet Document { get; set; } public DbSet Engagement { get; set; } public DbSet Ep { get; set; } public DbSet Objectif { get; set; } public DbSet ObjectifPrecedent { get; set; } public DbSet RdvEntretien { get; set; } public DbSet ReferentEP { get; set; } public DbSet TypeEntretien { get; set; } //Formation public DbSet DemandeFormation { get; set; } public DbSet Formation { get; set; } public DbSet ModeFormation { get; set; } public DbSet OrigineDemandeFormation { get; set; } public DbSet OrigineFormation { get; set; } public DbSet ParticipationFormation { get; set; } public DbSet StatutFormation { get; set; } public DbSet TypeFormation { get; set; } //Note public DbSet Note { get; set; } //SaisieChamp public DbSet Champ { get; set; } public DbSet Saisie { get; set; } protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); //EP modelBuilder.Entity(entity => { entity.HasKey(e => e.IdAugmentationSalaire); entity.Property(e => e.IdAugmentationSalaire).ValueGeneratedOnAdd(); }); modelBuilder.Entity(entity => { entity.HasKey(e => e.IdDocument); entity.Property(e => e.IdDocument).ValueGeneratedOnAdd(); entity.HasMany(e => e.Saisies).WithOne(e => e.Document); }); modelBuilder.Entity(entity => { entity.HasKey(e => e.IdEngagement); entity.Property(e => e.IdEngagement).ValueGeneratedOnAdd(); }); modelBuilder.Entity(entity => { entity.HasKey(e => e.IdEP); entity.HasOne(e => e.AugmentationSalaire).WithOne(a => a.Ep).HasForeignKey(a => a.IdEP); entity.HasMany(e => e.ChoixTypeEntretien).WithOne(c => c.Ep); entity.HasOne(e => e.DemandeDelegation).WithOne(d => d.Ep).HasForeignKey(d => d.IdEP); entity.HasMany(e => e.DemandesFormation).WithOne(d => d.Ep); entity.HasMany(e => e.CommentairesAssistant).WithOne(c => c.Ep); entity.HasMany(e => e.Documents).WithOne(d => d.Ep); entity.HasMany(e => e.Engagements).WithOne(e => e.Ep); entity.HasMany(e => e.Objectifs).WithOne(o => o.Ep); entity.HasMany(e => e.ObjectifsPrecedents).WithOne(o => o.Ep); entity.HasMany(e => e.Participants).WithOne(p => p.Ep); entity.HasOne(e => e.RdvEntretien).WithOne(r => r.EpChoixRDV).HasForeignKey(r => r.IdEPChoixRDV); entity.HasMany(e => e.PropositionsRDV).WithOne(r => r.EpProposition); entity.HasOne(e => e.DemandeEPI).WithOne(a => a.Ep).HasForeignKey(a => a.IdEP); }); modelBuilder.Entity(entity => { entity.HasKey(e => e.IdObjectif); entity.Property(e => e.IdObjectif).ValueGeneratedOnAdd(); }); modelBuilder.Entity(entity => { entity.HasKey(e => e.IdObjectif); entity.Property(e => e.IdObjectif).ValueGeneratedOnAdd(); }); modelBuilder.Entity(entity => { entity.HasKey(e => e.IdRdvEntretien); entity.Property(e => e.IdRdvEntretien).ValueGeneratedOnAdd(); }); modelBuilder.Entity(entity => { entity.HasKey(e => e.IdCollaborateur); }); modelBuilder.Entity(entity => { entity.HasKey(e => e.Ordre); }); modelBuilder.Entity(entity => { entity.HasKey(e => e.IdDemandeDelegation); }); modelBuilder.Entity(entity => { entity.HasKey(e => e.IdDemandeEPI); }); modelBuilder.Entity(entity => { entity.HasKey(e => e.IdParticipationEP); }); modelBuilder.Entity(entity => { entity.HasKey(e => e.IdTypeEntretien); entity.HasIndex(e => e.Libelle).IsUnique(); }); modelBuilder.Entity(entity => { entity.HasKey(e => e.IdCommentaireAssistant); entity.Property(e => e.IdCommentaireAssistant).ValueGeneratedOnAdd(); }); //Formation modelBuilder.Entity(entity => { entity.HasKey(e => e.IdDemandeFormation); entity.Property(e => e.IdDemandeFormation).ValueGeneratedOnAdd(); entity.HasOne(e => e.ParticipationFormation).WithOne(e => e.DemandeFormation).HasForeignKey("IdDemandeFormation"); entity.HasOne(o => o.OrigineDemande).WithMany().IsRequired(); }); modelBuilder.Entity(entity => { entity.HasKey(e => e.IdFormation); entity.Property(e => e.IdFormation).ValueGeneratedOnAdd(); entity.HasMany(e => e.ParticipationsFormation).WithOne(e => e.Formation); }); modelBuilder.Entity(entity => { entity.HasKey(e => e.IdModeFormation); entity.Property(e => e.IdModeFormation).ValueGeneratedOnAdd(); entity.HasIndex(e => e.Libelle).IsUnique(); }); modelBuilder.Entity(entity => { entity.HasKey(e => e.IdOrigineDemande); entity.Property(e => e.IdOrigineDemande).ValueGeneratedOnAdd(); entity.HasIndex(e => e.Libelle).IsUnique(); }); modelBuilder.Entity(entity => { entity.HasKey(e => e.IdOrigineFormation); entity.Property(e => e.IdOrigineFormation).ValueGeneratedOnAdd(); entity.HasIndex(e => e.Libelle).IsUnique(); }); modelBuilder.Entity(entity => { entity.HasKey(e => e.IdParticipationFormation); entity.Property(e => e.IdParticipationFormation).ValueGeneratedOnAdd(); entity.Property("IdDemandeFormation"); entity.HasMany(e => e.Evaluation).WithOne(e => e.ParticipationFormation); }); modelBuilder.Entity(entity => { entity.HasKey(e => e.IdStatutFormation); entity.Property(e => e.IdStatutFormation).ValueGeneratedOnAdd(); entity.HasIndex(e => e.Libelle).IsUnique(); }); modelBuilder.Entity(entity => { entity.HasKey(e => e.IdTypeFormation); entity.Property(e => e.IdTypeFormation).ValueGeneratedOnAdd(); entity.HasIndex(e => e.Libelle).IsUnique(); }); //Notes modelBuilder.Entity(entity => { entity.HasKey(e => e.IdNote); entity.Property(e => e.IdNote).ValueGeneratedOnAdd(); }); //SaisieChamp modelBuilder.Entity(entity => { entity.HasKey(e => e.IdChamp); entity.Property(e => e.IdChamp).ValueGeneratedOnAdd(); entity.HasMany(e => e.Saisies).WithOne(e => e.Champ); }); modelBuilder.Entity(entity => { entity.HasKey(e => e.IdSaisie); entity.Property(e => e.IdSaisie).ValueGeneratedOnAdd(); }); } } }