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 DbSet<TenantConnectionString> TenantConnectionStrings { get; set; }
public AbpDeskDbContext(DbContextOptions<AbpDeskDbContext> options) public AbpDeskDbContext(DbContextOptions<AbpDeskDbContext> options)
: base(options) : base(options)
{ {
@ -26,7 +26,7 @@ namespace AbpDesk.EntityFrameworkCore
{ {
base.OnModelCreating(modelBuilder); 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? //Use different classes to map each entity type, as a better practice?
modelBuilder.Entity<Ticket>(b => 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 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; } public DbSet<Tenant> Tenants { get; set; }
@ -22,7 +22,7 @@ namespace Volo.Abp.MultiTenancy.EntityFrameworkCore
{ {
base.OnModelCreating(builder); 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 JetBrains.Annotations;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
@ -6,9 +5,14 @@ namespace Volo.Abp.MultiTenancy.EntityFrameworkCore
{ {
public static class MultiTenancyDbContextModelCreatingExtensions 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 = ""; tablePrefix = "";
} }
@ -28,7 +32,7 @@ namespace Volo.Abp.MultiTenancy.EntityFrameworkCore
{ {
b.ToTable(tablePrefix + "TenantConnectionStrings", schema); 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.Name).IsRequired().HasMaxLength(TenantConnectionStringConsts.MaxNameLength);
b.Property(cs => cs.Value).IsRequired().HasMaxLength(TenantConnectionStringConsts.MaxValueLength); b.Property(cs => cs.Value).IsRequired().HasMaxLength(TenantConnectionStringConsts.MaxValueLength);

Loading…
Cancel
Save