using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Identity.EntityFrameworkCore; using Microsoft.EntityFrameworkCore; using Oqtane.Models; using System; namespace Oqtane.Repository { public class TenantContext : IdentityDbContext { public virtual DbSet Site { get; set; } public virtual DbSet Page { get; set; } public virtual DbSet PageModule { get; set; } public virtual DbSet Module { get; set; } public virtual DbSet User { get; set; } private readonly Tenant tenant; public TenantContext(ITenantResolver TenantResolver) { tenant = TenantResolver.GetTenant(); } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseSqlServer(tenant.DBConnectionString .Replace("|DataDirectory|", AppDomain.CurrentDomain.GetData("DataDirectory").ToString()) ); base.OnConfiguring(optionsBuilder); } protected override void OnModelCreating(ModelBuilder modelBuilder) { if (tenant.DBSchema != "") { modelBuilder.HasDefaultSchema(tenant.DBSchema); } base.OnModelCreating(modelBuilder); } } }