81 lines
2.6 KiB
C#
81 lines
2.6 KiB
C#
using System;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using Microsoft.EntityFrameworkCore.Metadata;
|
|
using Microsoft.EntityFrameworkCore.Metadata.Internal;
|
|
using PartSource.Data.Models;
|
|
|
|
namespace PartSource.Data
|
|
{
|
|
public class PartSourceContext : DbContext
|
|
{
|
|
public PartSourceContext(DbContextOptions<PartSourceContext> contextOptions)
|
|
: base(contextOptions) { }
|
|
|
|
public DbSet<ApiClient> ApiClients { get; set; }
|
|
|
|
public DbSet<ProductBackup> ProductBackups { get; set; }
|
|
|
|
public DbSet<DcfMapping> DcfMappings { get; set; }
|
|
|
|
public DbSet<Fitment> Fitments { get; set; }
|
|
|
|
public DbSet<Manufacturer> Manufacturers { get; set; }
|
|
|
|
public DbSet<ImportData> ImportData { get; set; }
|
|
|
|
public DbSet<ImportMetric> ImportMetrics { get; set; }
|
|
|
|
public DbSet<PartData> PartData { get; set; }
|
|
|
|
public DbSet<PartImage> PartImages { get; set; }
|
|
|
|
public DbSet<PartPrice> PartPrices { get; set; }
|
|
|
|
public DbSet<Part> Parts { get; set; }
|
|
|
|
public DbSet<VehicleMake> VehicleMakes { get; set; }
|
|
|
|
public DbSet<VehicleModel> VehicleModels { get; set; }
|
|
|
|
|
|
public DbSet<VehicleData> VehicleData { get; set; }
|
|
|
|
public DbSet<PartsAvailability> PartAvailabilities { get; set; }
|
|
|
|
public DbQuery<BaseVehicle> BaseVehicles { get; set; }
|
|
|
|
public DbQuery<Engine> Engines { get; set; }
|
|
|
|
public DbQuery<Submodel> Submodels { get; set; }
|
|
|
|
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
|
{
|
|
base.OnModelCreating(modelBuilder);
|
|
|
|
modelBuilder.Query<BaseVehicle>().ToView(nameof(BaseVehicle));
|
|
modelBuilder.Query<Engine>().ToView(nameof(Engine));
|
|
modelBuilder.Query<Submodel>().ToView(nameof(Submodel));
|
|
|
|
modelBuilder.Entity<PartsAvailability>().HasKey(p => new { p.Store, p.SKU });
|
|
modelBuilder.Entity<DcfMapping>().HasKey(d => new { d.LineCode, d.WhiCode });
|
|
|
|
modelBuilder.Entity<Fitment>().HasKey(f => new { f.BaseVehicleId, f.EngineConfigId, f.LineCode, f.PartNumber });
|
|
|
|
foreach (IMutableEntityType entityType in modelBuilder.Model.GetEntityTypes())
|
|
{
|
|
entityType.Relational().TableName = entityType.ClrType.Name;
|
|
}
|
|
|
|
}
|
|
|
|
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
|
{
|
|
|
|
if (!optionsBuilder.IsConfigured)
|
|
{
|
|
optionsBuilder.UseSqlServer("Server=(localdb)\\mssqllocaldb;Database=PartSource;Trusted_Connection=True;");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|