using Microsoft.AspNetCore.Identity.EntityFrameworkCore; using Microsoft.EntityFrameworkCore; using isnd.Data.ApiKeys; using isnd.Data.Packages; namespace isnd.Data { /// /// Application Db Context /// public class ApplicationDbContext : IdentityDbContext { /// /// db context ctor /// /// public ApplicationDbContext(DbContextOptions options) : base(options) { } protected override void OnModelCreating(ModelBuilder builder) { base.OnModelCreating(builder); _ = builder.Entity() .HasKey( v => new { v.PackageId, v.FullString } ); _ = builder.Entity() .HasOne(v => v.Package).WithMany(p => p.Versions).HasForeignKey(x => x.PackageId); _ = builder.Entity().HasOne(g=>g.PackageVersion) .WithMany(v => v.DependencyGroups).HasForeignKey(x => new { x.PackageId, x.PackageVersionFullString } ); } /// /// User API keys /// /// public DbSet ApiKeys { get; set; } /// /// Packages /// /// public DbSet Packages { get; set; } /// /// Package Versions /// /// public DbSet PackageVersions { get; set; } /// /// Commits /// /// public DbSet Commits { get; set; } public DbSet Dependencies { get; set; } public DbSet PackageDependencyGroups { get; set; } } }