Initial commit
This commit is contained in:
81
PartSource.Data/PartSourceContext.cs
Normal file
81
PartSource.Data/PartSourceContext.cs
Normal file
@@ -0,0 +1,81 @@
|
||||
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;");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user