using cuqmbr.TravelGuide.Domain.Enums; using cuqmbr.TravelGuide.Domain.Entities; using Microsoft.EntityFrameworkCore; using cuqmbr.TravelGuide.Persistence.TypeConverters; namespace cuqmbr.TravelGuide.Persistence.InMemory; public class InMemoryDbContext : DbContext { public InMemoryDbContext(DbContextOptions options) : base(options) { } protected override void OnModelCreating(ModelBuilder builder) { base.OnModelCreating(builder); builder .Entity() .ToTable("vehicles") .UseTphMappingStrategy() .HasDiscriminator(v => v.VehicleType) .HasValue(VehicleType.Bus) .HasValue(VehicleType.Aircraft) .HasValue(VehicleType.Train); } protected override void ConfigureConventions( ModelConfigurationBuilder builder) { builder .Properties() .HaveColumnType("varchar(16)") .HaveConversion(); builder .Properties() .HaveColumnType("varchar(8)") .HaveConversion(); builder .Properties() .HaveColumnType("varchar(64)") .HaveConversion(); builder .Properties() .HaveColumnType("varchar(32)") .HaveConversion(); builder .Properties() .HaveConversion(); } }