63 lines
1.9 KiB
C#
63 lines
1.9 KiB
C#
using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using isnd.Data.ApiKeys;
|
|
using isnd.Data.Packages;
|
|
|
|
namespace isnd.Data
|
|
{
|
|
/// <summary>
|
|
/// Application Db Context
|
|
/// </summary>
|
|
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
|
|
{
|
|
/// <summary>
|
|
/// db context ctor
|
|
/// </summary>
|
|
/// <param name="options"></param>
|
|
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
|
|
: base(options) { }
|
|
|
|
protected override void OnModelCreating(ModelBuilder builder)
|
|
{
|
|
base.OnModelCreating(builder);
|
|
_ = builder.Entity<PackageVersion>()
|
|
.HasKey( v => new { v.PackageId, v.FullString } );
|
|
_ = builder.Entity<PackageVersion>()
|
|
.HasOne(v => v.Package).WithMany(p => p.Versions).HasForeignKey(x => x.PackageId);
|
|
|
|
|
|
_ = builder.Entity<PackageDependencyGroup>().HasOne(g=>g.PackageVersion)
|
|
.WithMany(v => v.DependencyGroups).HasForeignKey(x => new { x.PackageId, x.PackageVersionFullString } );
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// User API keys
|
|
/// </summary>
|
|
/// <value></value>
|
|
public DbSet<ApiKey> ApiKeys { get; set; }
|
|
|
|
/// <summary>
|
|
/// Packages
|
|
/// </summary>
|
|
/// <value></value>
|
|
public DbSet<Package> Packages { get; set; }
|
|
|
|
/// <summary>
|
|
/// Package Versions
|
|
/// </summary>
|
|
/// <value></value>
|
|
public DbSet<PackageVersion> PackageVersions { get; set; }
|
|
|
|
/// <summary>
|
|
/// Commits
|
|
/// </summary>
|
|
/// <value></value>
|
|
public DbSet<Commit> Commits { get; set; }
|
|
public DbSet<Dependency> Dependencies { get; set; }
|
|
|
|
public DbSet<PackageDependencyGroup> PackageDependencyGroups { get; set; }
|
|
}
|
|
}
|