refactor: extract training data collection into OpenNest.Training
Move brute-force data collection, TrainingDatabase, and GPU init from OpenNest.Console into a dedicated OpenNest.Training project. Replaces raw Microsoft.Data.Sqlite with EF Core. Console is now a pure nesting CLI with template support and cleaned-up usage output. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
38
OpenNest.Training/Data/TrainingDbContext.cs
Normal file
38
OpenNest.Training/Data/TrainingDbContext.cs
Normal file
@@ -0,0 +1,38 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace OpenNest.Training.Data
|
||||
{
|
||||
public class TrainingDbContext : DbContext
|
||||
{
|
||||
public DbSet<TrainingPart> Parts { get; set; }
|
||||
public DbSet<TrainingRun> Runs { get; set; }
|
||||
|
||||
private readonly string _dbPath;
|
||||
|
||||
public TrainingDbContext(string dbPath)
|
||||
{
|
||||
_dbPath = dbPath;
|
||||
}
|
||||
|
||||
protected override void OnConfiguring(DbContextOptionsBuilder options)
|
||||
{
|
||||
options.UseSqlite($"Data Source={_dbPath}");
|
||||
}
|
||||
|
||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||
{
|
||||
modelBuilder.Entity<TrainingPart>(e =>
|
||||
{
|
||||
e.HasIndex(p => p.FileName).HasDatabaseName("idx_parts_filename");
|
||||
});
|
||||
|
||||
modelBuilder.Entity<TrainingRun>(e =>
|
||||
{
|
||||
e.HasIndex(r => r.PartId).HasDatabaseName("idx_runs_partid");
|
||||
e.HasOne(r => r.Part)
|
||||
.WithMany(p => p.Runs)
|
||||
.HasForeignKey(r => r.PartId);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user