Files
GazpromApp/Utils/AppDbContext.cs
T
2025-06-30 20:13:36 +03:00

47 lines
1.3 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);
// Equipment
modelBuilder.Entity<Equipment>()
.HasOne(e => e.Point)
.WithMany(e => e.Equipment)
.HasForeignKey(e => e.PointId);
}
}