Browse Source

Refactored tableprefix for multitenancy module.

pull/206/head
Halil İbrahim Kalkan 8 years ago
parent
commit
84f7f0a8e4
  1. 4
      src/AbpDesk/AbpDesk.EntityFrameworkCore/AbpDesk/EntityFrameworkCore/AbpDeskDbContext.cs
  2. 9
      src/Volo.Abp.MultiTenancy.Domain/Volo/Abp/MultiTenancy/AbpIdentityConsts.cs
  3. 6
      src/Volo.Abp.MultiTenancy.EntityFrameworkCore/Volo/Abp/MultiTenancy/EntityFrameworkCore/MultiTenancyDbContext.cs
  4. 12
      src/Volo.Abp.MultiTenancy.EntityFrameworkCore/Volo/Abp/MultiTenancy/EntityFrameworkCore/MultiTenancyDbContextModelCreatingExtensions.cs

4
src/AbpDesk/AbpDesk.EntityFrameworkCore/AbpDesk/EntityFrameworkCore/AbpDeskDbContext.cs

@ -16,7 +16,7 @@ namespace AbpDesk.EntityFrameworkCore
public DbSet<TenantConnectionString> TenantConnectionStrings { get; set; }
public AbpDeskDbContext(DbContextOptions<AbpDeskDbContext> options)
public AbpDeskDbContext(DbContextOptions<AbpDeskDbContext> options)
: base(options)
{
@ -26,7 +26,7 @@ namespace AbpDesk.EntityFrameworkCore
{
base.OnModelCreating(modelBuilder);
this.ConfigureMultiTenancy(modelBuilder, MultiTenancyDbContext.TablePrefix, MultiTenancyDbContext.Schema);
modelBuilder.ConfigureMultiTenancy(MultiTenancyDbContext.TablePrefix, MultiTenancyDbContext.Schema);
//Use different classes to map each entity type, as a better practice?
modelBuilder.Entity<Ticket>(b =>

9
src/Volo.Abp.MultiTenancy.Domain/Volo/Abp/MultiTenancy/AbpIdentityConsts.cs

@ -0,0 +1,9 @@
namespace Volo.Abp.MultiTenancy
{
public static class AbpMultiTenancyConsts
{
public const string DefaultDbTablePrefix = "Mt";
public const string DefaultDbSchema = null;
}
}

6
src/Volo.Abp.MultiTenancy.EntityFrameworkCore/Volo/Abp/MultiTenancy/EntityFrameworkCore/MultiTenancyDbContext.cs

@ -5,9 +5,9 @@ namespace Volo.Abp.MultiTenancy.EntityFrameworkCore
{
public class MultiTenancyDbContext : AbpDbContext<MultiTenancyDbContext>, IMultiTenancyDbContext
{
public static string TablePrefix { get; set; } = "Mt";
public static string TablePrefix { get; set; } = AbpMultiTenancyConsts.DefaultDbTablePrefix;
public static string Schema { get; set; }
public static string Schema { get; set; } = AbpMultiTenancyConsts.DefaultDbSchema;
public DbSet<Tenant> Tenants { get; set; }
@ -22,7 +22,7 @@ namespace Volo.Abp.MultiTenancy.EntityFrameworkCore
{
base.OnModelCreating(builder);
this.ConfigureMultiTenancy(builder, TablePrefix, Schema);
builder.ConfigureMultiTenancy(TablePrefix, Schema);
}
}
}

12
src/Volo.Abp.MultiTenancy.EntityFrameworkCore/Volo/Abp/MultiTenancy/EntityFrameworkCore/MultiTenancyDbContextModelCreatingExtensions.cs

@ -1,4 +1,3 @@
using System;
using JetBrains.Annotations;
using Microsoft.EntityFrameworkCore;
@ -6,9 +5,14 @@ namespace Volo.Abp.MultiTenancy.EntityFrameworkCore
{
public static class MultiTenancyDbContextModelCreatingExtensions
{
public static void ConfigureMultiTenancy(this IMultiTenancyDbContext dbContext, ModelBuilder builder, string tablePrefix = "", [CanBeNull] string schema = null)
public static void ConfigureMultiTenancy(
this ModelBuilder builder,
[CanBeNull]string tablePrefix = AbpMultiTenancyConsts.DefaultDbTablePrefix,
[CanBeNull] string schema = AbpMultiTenancyConsts.DefaultDbSchema)
{
if (tablePrefix.IsNullOrWhiteSpace())
Check.NotNull(builder, nameof(builder));
if (tablePrefix == null)
{
tablePrefix = "";
}
@ -28,7 +32,7 @@ namespace Volo.Abp.MultiTenancy.EntityFrameworkCore
{
b.ToTable(tablePrefix + "TenantConnectionStrings", schema);
b.HasKey(x => new {x.TenantId, x.Name});
b.HasKey(x => new { x.TenantId, x.Name });
b.Property(cs => cs.Name).IsRequired().HasMaxLength(TenantConnectionStringConsts.MaxNameLength);
b.Property(cs => cs.Value).IsRequired().HasMaxLength(TenantConnectionStringConsts.MaxValueLength);

Loading…
Cancel
Save