using Application.ATG_Classic_App.Model; using Edge.Core.Database.Models; using Microsoft.EntityFrameworkCore; namespace Application.ATG_Classic_App { public class AppDbContext : DbContext { private DbContextOptions options; public AppDbContext() : base() { } public AppDbContext(DbContextOptions options) : base(options) { this.options = options; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { //if (options == null) // optionsBuilder.UseSqlite("Data Source=Application.ATG_Classic_App_database.db"); } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity().HasIndex(p => new { p.BatchLabel, p.Height }).IsUnique(true); modelBuilder.Entity().HasIndex(a => new { a.TankNumber, a.Type, a.Priority, a.CreatedTimeStamp }).IsUnique(true); modelBuilder.Entity().HasIndex(a => new { a.TankNumber, a.Type, a.Priority, a.ClearedTimeStamp }).IsUnique(true); modelBuilder.Entity().HasIndex(a => new { a.CreatedTimeStamp }).IsUnique(false); modelBuilder.Entity().HasIndex(a => new { a.TankNumber }).IsUnique(false); modelBuilder.Entity().HasIndex(d => new { d.TankNumber, d.StartingDateTime }).IsUnique(true); modelBuilder.Entity().HasIndex(d => new { d.TankNumber, d.TimeStamp }).IsUnique(true); } public DbSet TankOverallConfigs { get; set; } public DbSet TankLimitConfigs { get; set; } public DbSet ProductConfigs { get; set; } public DbSet ProbeConfigs { get; set; } public DbSet TankConfigs { get; set; } public DbSet TankProfileDatas { get; set; } public DbSet Alarms { get; set; } public DbSet Deliveries { get; set; } public DbSet Inventories { get; set; } } }