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; }
}
}