Files
GazpromApp/Utils/AppDbContext.cs
T
2025-07-09 14:27:45 +03:00

56 lines
1.7 KiB
C#

using Microsoft.EntityFrameworkCore;
using GazpromApp.Models;
namespace GazpromApp.Utils;
public class AppDbContext : DbContext
{
public DbSet<Models.Image> Image { get; set; }
public DbSet<Equipment> Equipment { get; set; }
public DbSet<Models.Point> 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<Models.Point>()
.HasMany(e => e.Images)
.WithMany(e => e.Points);
modelBuilder.Entity<Equipment>()
.HasOne(e => e.Image)
.WithMany(e => e.Equipment)
.HasForeignKey(e => e.ImageId);
// Properties
modelBuilder.Entity<Models.Point>()
.HasMany(e => e.Properties)
.WithMany(e => e.Points);
modelBuilder.Entity<Equipment>()
.HasMany(e => e.Properties)
.WithMany(e => e.Equipment);
modelBuilder.Entity<Property>()
.HasMany(e => e.Properties)
.WithOne(e => e.Parent)
.HasForeignKey(e => e.ParentId);
// Equipment
modelBuilder.Entity<Equipment>()
.HasOne(e => e.Point)
.WithMany(e => e.Equipment)
.HasForeignKey(e => e.PointId);
modelBuilder.Entity<Equipment>()
.HasMany(e => e.Inspections)
.WithOne(e => e.Equipment)
.HasForeignKey(e => e.EquipmentId);
}
}