33 lines
1.1 KiB
C#
33 lines
1.1 KiB
C#
// Copyright (c) HelloShop Corporation. All rights reserved.
|
|
// See the license file in the project root for more information.
|
|
|
|
using Microsoft.EntityFrameworkCore;
|
|
using MultiTenancySample.DatabaseIsolationService.Entities;
|
|
using MultiTenancySample.ServiceDefaults;
|
|
|
|
|
|
namespace MultiTenancySample.DatabaseIsolationService.EntityFrameworks
|
|
{
|
|
public class DatabaseIsolationServiceDbContext(DbContextOptions<DatabaseIsolationServiceDbContext> options, ICurrentTenant currentTenant, IConfiguration configuration) : DbContext(options)
|
|
{
|
|
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
|
{
|
|
modelBuilder.Entity<Product>().Property(p => p.Name).HasMaxLength(32);
|
|
|
|
base.OnModelCreating(modelBuilder);
|
|
}
|
|
|
|
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
|
{
|
|
if (currentTenant.TenantId != null)
|
|
{
|
|
string? connectionString = configuration.GetConnectionString(currentTenant.TenantId);
|
|
|
|
optionsBuilder.UseNpgsql(connectionString);
|
|
}
|
|
|
|
base.OnConfiguring(optionsBuilder);
|
|
}
|
|
}
|
|
}
|