using Expedience.Api.Db.Models; using Microsoft.EntityFrameworkCore; namespace Expedience.Api.Db { public class ExpedienceContext : DbContext { public ExpedienceContext(DbContextOptions dbContextOptions) : base(dbContextOptions) { } public DbSet DutyCompletionResults { get; set; } public DbSet DutyMembers { get; set; } public DbSet Users { get; set; } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity(cfg => { cfg.ToTable(nameof(DutyCompletionResult)); cfg.HasKey(e => e.Id); }); modelBuilder.Entity(cfg => { cfg.ToTable(nameof(DutyMember)); cfg.HasKey(e => new { e.UploadId, e.GroupNumber, e.MemberNumber }); cfg.HasOne(o => o.DutyCompletionResult) .WithMany(o => o.DutyMembers) .HasForeignKey(o => o.UploadId); }); modelBuilder.Entity(cfg => { cfg.ToTable(nameof(User)); cfg.Property(e => e.UserId) .UseIdentityAlwaysColumn() .IsRequired() .ValueGeneratedOnAdd(); cfg.HasKey(e => new { e.UserId }); }); base.OnModelCreating(modelBuilder); } } }