Add initial hcs database schema creation

This commit is contained in:
2025-10-22 16:42:00 +09:00
parent 77626a8e52
commit 37cf856685
38 changed files with 302 additions and 336 deletions

View File

@ -0,0 +1,12 @@
using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
namespace Hcs.WebApp.Data.Hcs
{
public class HcsDbContext(DbContextOptions<HcsDbContext> options) : DbContext(options)
{
public DbSet<Registry> Registries { get; set; }
public DbSet<RegistryElement> Elements { get; set; }
}
}

View File

@ -0,0 +1,82 @@
// <auto-generated />
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace Hcs.WebApp.Data.Hcs.Migrations
{
[DbContext(typeof(HcsDbContext))]
[Migration("20251022073558_CreateHcsSchema")]
partial class CreateHcsSchema
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "9.0.9")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
modelBuilder.Entity("Hcs.WebApp.Data.Hcs.Registry", b =>
{
b.Property<string>("Id")
.HasColumnType("nvarchar(450)");
b.Property<int>("Number")
.HasColumnType("int");
b.HasKey("Id");
b.ToTable("Registries");
});
modelBuilder.Entity("Hcs.WebApp.Data.Hcs.RegistryElement", b =>
{
b.Property<string>("Id")
.HasColumnType("nvarchar(450)");
b.Property<string>("Code")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("GUID")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("RegistryId")
.IsRequired()
.HasColumnType("nvarchar(450)");
b.Property<string>("Xml")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.HasIndex("RegistryId");
b.ToTable("Elements");
});
modelBuilder.Entity("Hcs.WebApp.Data.Hcs.RegistryElement", b =>
{
b.HasOne("Hcs.WebApp.Data.Hcs.Registry", "Registry")
.WithMany("Elements")
.HasForeignKey("RegistryId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Registry");
});
modelBuilder.Entity("Hcs.WebApp.Data.Hcs.Registry", b =>
{
b.Navigation("Elements");
});
#pragma warning restore 612, 618
}
}
}

View File

@ -0,0 +1,61 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace Hcs.WebApp.Data.Hcs.Migrations
{
/// <inheritdoc />
public partial class CreateHcsSchema : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "Registries",
columns: table => new
{
Id = table.Column<string>(type: "nvarchar(450)", nullable: false),
Number = table.Column<int>(type: "int", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Registries", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Elements",
columns: table => new
{
Id = table.Column<string>(type: "nvarchar(450)", nullable: false),
RegistryId = table.Column<string>(type: "nvarchar(450)", nullable: false),
Code = table.Column<string>(type: "nvarchar(max)", nullable: false),
GUID = table.Column<string>(type: "nvarchar(max)", nullable: false),
Xml = table.Column<string>(type: "nvarchar(max)", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Elements", x => x.Id);
table.ForeignKey(
name: "FK_Elements_Registries_RegistryId",
column: x => x.RegistryId,
principalTable: "Registries",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateIndex(
name: "IX_Elements_RegistryId",
table: "Elements",
column: "RegistryId");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "Elements");
migrationBuilder.DropTable(
name: "Registries");
}
}
}

View File

@ -0,0 +1,79 @@
// <auto-generated />
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
#nullable disable
namespace Hcs.WebApp.Data.Hcs.Migrations
{
[DbContext(typeof(HcsDbContext))]
partial class HcsDbContextModelSnapshot : ModelSnapshot
{
protected override void BuildModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "9.0.9")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
modelBuilder.Entity("Hcs.WebApp.Data.Hcs.Registry", b =>
{
b.Property<string>("Id")
.HasColumnType("nvarchar(450)");
b.Property<int>("Number")
.HasColumnType("int");
b.HasKey("Id");
b.ToTable("Registries");
});
modelBuilder.Entity("Hcs.WebApp.Data.Hcs.RegistryElement", b =>
{
b.Property<string>("Id")
.HasColumnType("nvarchar(450)");
b.Property<string>("Code")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("GUID")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("RegistryId")
.IsRequired()
.HasColumnType("nvarchar(450)");
b.Property<string>("Xml")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.HasIndex("RegistryId");
b.ToTable("Elements");
});
modelBuilder.Entity("Hcs.WebApp.Data.Hcs.RegistryElement", b =>
{
b.HasOne("Hcs.WebApp.Data.Hcs.Registry", "Registry")
.WithMany("Elements")
.HasForeignKey("RegistryId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Registry");
});
modelBuilder.Entity("Hcs.WebApp.Data.Hcs.Registry", b =>
{
b.Navigation("Elements");
});
#pragma warning restore 612, 618
}
}
}

View File

@ -0,0 +1,11 @@
namespace Hcs.WebApp.Data.Hcs
{
public class Registry
{
public string Id { get; set; }
public int Number { get; set; }
public virtual ICollection<RegistryElement> Elements { get; set; } = [];
}
}

View File

@ -0,0 +1,17 @@
namespace Hcs.WebApp.Data.Hcs
{
public class RegistryElement
{
public string Id { get; set; }
public string RegistryId { get; set; }
public virtual Registry Registry { get; set; } = null!;
public string Code { get; set; }
public string GUID { get; set; }
public virtual string Xml { get; set; }
}
}