using Microsoft.EntityFrameworkCore; using ProfessionalProfile.Domain; namespace ProfessionalProfile.DatabaseContext { public class DataContext : DbContext { public DataContext(DbContextOptions options) : base(options) { } public DbSet AssessmentResult { get; set; } public DbSet BusinessCard { get; set; } public DbSet Certificate { get; set; } public DbSet Education { get; set; } public DbSet Question { get; set; } public DbSet Answers { get; set; } public DbSet AssessmentTest { get; set; } public DbSet Privacy { get; set; } public DbSet User { get; set; } public DbSet Skill { get; set; } public DbSet Endorsement { get; set; } public DbSet Notification { get; set; } public DbSet Project { get; set; } public DbSet Volunteering { get; set; } public DbSet WorkExperience { get; set; } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity( Endorsement => { Endorsement.HasKey(a => a.endorsementId); Endorsement.HasOne(a => a.Endorser) .WithMany() .HasForeignKey(a => a.endorserId) .OnDelete(DeleteBehavior.Restrict); Endorsement.HasOne(a => a.Recipient) .WithMany() .HasForeignKey(a => a.recipientid) .OnDelete(DeleteBehavior.Restrict); }); modelBuilder.Entity().HasOne(a => a.User).WithOne(a => a.Privacy).HasForeignKey(a => a.userId); modelBuilder.Entity(AssessmentTest => { AssessmentTest.HasKey(a => a.assessmentTestId); AssessmentTest.HasOne(a => a.User) .WithMany() .HasForeignKey(a => a.userId); AssessmentTest.HasOne(a => a.Skill) .WithMany() .HasForeignKey(a => a.skillid); }); modelBuilder.Entity(Question => { Question.HasKey(a => a.questionId); Question.HasOne(a => a.AssessmentTest) .WithMany() .HasForeignKey(a => a.assesmentTestId); }); modelBuilder.Entity(Answer => { Answer.HasKey(a => a.answerId); Answer.HasOne(a => a.Question) .WithMany() .HasForeignKey(a => a.questionId); }); modelBuilder.Entity(Education => { Education.HasKey(a => a.educationId); Education.HasOne(a => a.User) .WithMany() .HasForeignKey(a => a.userId); }); modelBuilder.Entity(Certificate => { Certificate.HasKey(a => a.certificateId); Certificate.HasOne(a => a.User) .WithMany() .HasForeignKey(a => a.userId); }); modelBuilder.Entity(BussinesCard => { BussinesCard.HasKey(a => a.bcId); modelBuilder.Entity() .HasMany(bc => bc.keySkills) .WithOne(); }); modelBuilder.Entity(AssessmentResult => { AssessmentResult.HasKey(a => a.assesmentResultId); AssessmentResult.HasOne(a => a.AssessmentTest) .WithOne(a => a.AssessmentResult) .HasForeignKey(a => a.assesmentTestId).OnDelete(DeleteBehavior.NoAction); AssessmentResult.HasOne(a => a.User) .WithOne(a => a.AssessmentResult).HasForeignKey(a => a.userId) .OnDelete(DeleteBehavior.NoAction); }); modelBuilder.Entity(Project => { Project.HasKey(a => a.projectId); Project.HasOne(a => a.User) .WithOne(a => a.Project) .HasForeignKey(b => b.userId); }); modelBuilder.Entity(Volunteering => { Volunteering.HasKey(a => a.volunteeringId); Volunteering.HasOne(a => a.User) .WithOne(a => a.Volunteering) .HasForeignKey(a=>a.userId); }); modelBuilder.Entity(WorkExperience => { WorkExperience.HasKey(a => a.workId); WorkExperience.HasOne(a => a.User) .WithOne(a => a.WorkExperience) .HasForeignKey(a => a.userId); }); } } }