44 lines
1.3 KiB
C#
44 lines
1.3 KiB
C#
using System.Reflection;
|
|
using cuqmbr.TravelGuide.Domain.Enums;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using Microsoft.Extensions.Options;
|
|
using cuqmbr.TravelGuide.Persistence.PostgreSql.TypeConverters;
|
|
|
|
namespace cuqmbr.TravelGuide.Persistence.PostgreSql;
|
|
|
|
public class PostgreSqlDbContext : DbContext
|
|
{
|
|
public PostgreSqlDbContext(
|
|
DbContextOptions<PostgreSqlDbContext> options,
|
|
IOptions<ConfigurationOptions> configurationOptions)
|
|
: base(options)
|
|
{
|
|
DefaultSchema = configurationOptions.Value.PartitionName;
|
|
}
|
|
|
|
public static string DefaultSchema { get; private set; }
|
|
|
|
protected override void OnModelCreating(ModelBuilder builder)
|
|
{
|
|
base.OnModelCreating(builder);
|
|
|
|
builder.HasDefaultSchema(DefaultSchema);
|
|
|
|
builder
|
|
.ApplyConfigurationsFromAssembly(
|
|
Assembly.GetExecutingAssembly(),
|
|
t => t.Namespace ==
|
|
"cuqmbr.TravelGuide.Persistence.PostgreSql.Configurations");
|
|
|
|
}
|
|
|
|
protected override void ConfigureConventions(
|
|
ModelConfigurationBuilder builder)
|
|
{
|
|
builder
|
|
.Properties<VehicleType>()
|
|
.HaveColumnType("vehicle_type")
|
|
.HaveConversion<VehicleTypeConverter>();
|
|
}
|
|
}
|