using Microsoft.EntityFrameworkCore; using InternshipSystem.Core; namespace InternshipSystem.Repository { public class InternshipDbContext : DbContext { public DbSet Internships { get; set; } public DbSet Companies { get; set; } public DbSet Editions { get; set; } public DbSet Reports { get; set; } public DbSet Interns { get; set; } public DbSet InternshipTypes { get; set; } public InternshipDbContext(DbContextOptions options) : base(options) { } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder .UseSnakeCaseNamingConvention(); protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder .Entity(ie => { ie.OwnsOne(i => i.DeanAcceptance); ie.OwnsOne(i => i.Insurance); ie.OwnsOne(i => i.Mentor); }); modelBuilder .Entity() .HasKey(c => c.Nip); modelBuilder .Entity() .OwnsOne(b => b.Address); modelBuilder .Entity() .HasKey(i => i.AlbumNumber); } } }