using Microsoft.EntityFrameworkCore; using GazpromApp.Models; namespace GazpromApp.Utils; public class AppDbContext : DbContext { public DbSet Image { get; set; } public DbSet Equipment { get; set; } public DbSet Point { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { base.OnConfiguring(optionsBuilder); optionsBuilder.UseSqlite("Data Source=MainDB.db"); } protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); // Images modelBuilder.Entity() .HasMany(e => e.Images) .WithMany(e => e.Points); modelBuilder.Entity() .HasOne(e => e.Image) .WithMany(e => e.Equipment) .HasForeignKey(e => e.ImageId); // Properties modelBuilder.Entity() .HasMany(e => e.Properties) .WithMany(e => e.Points); modelBuilder.Entity() .HasMany(e => e.Properties) .WithMany(e => e.Equipment); modelBuilder.Entity() .HasMany(e => e.Properties) .WithOne(e => e.Parent) .HasForeignKey(e => e.ParentId); // Equipment modelBuilder.Entity() .HasOne(e => e.Point) .WithMany(e => e.Equipment) .HasForeignKey(e => e.PointId); modelBuilder.Entity() .HasMany(e => e.Inspections) .WithOne(e => e.Equipment) .HasForeignKey(e => e.EquipmentId); } }