Browse Source
Merge pull request #6228 from abpframework/maliming/AsSplitQuery
Enabling split queries globally.
pull/6292/head
Halil İbrahim Kalkan
6 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with
44 additions and
12 deletions
-
framework/src/Volo.Abp.EntityFrameworkCore.MySQL/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextMySQLExtensions.cs
-
framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextOracleDevartExtensions.cs
-
framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextOracleExtensions.cs
-
framework/src/Volo.Abp.EntityFrameworkCore.PostgreSql/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextPostgreSqlExtensions.cs
-
framework/src/Volo.Abp.EntityFrameworkCore.SqlServer/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextSqlServerExtensions.cs
-
framework/src/Volo.Abp.EntityFrameworkCore.Sqlite/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextSqliteExtensions.cs
-
modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo/Abp/AuditLogging/AbpAuditLoggingEfCoreQueryableExtensions.cs
-
modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityEfCoreQueryableExtensions.cs
-
modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/AbpIdentityServerEfCoreQueryableExtensions.cs
|
|
|
@ -14,11 +14,21 @@ namespace Volo.Abp.EntityFrameworkCore |
|
|
|
{ |
|
|
|
if (context.ExistingConnection != null) |
|
|
|
{ |
|
|
|
return context.DbContextOptions.UseMySql(context.ExistingConnection, ServerVersion.AutoDetect(context.ConnectionString), mySQLOptionsAction); |
|
|
|
return context.DbContextOptions.UseMySql(context.ExistingConnection, |
|
|
|
ServerVersion.AutoDetect(context.ConnectionString), optionsBuilder => |
|
|
|
{ |
|
|
|
optionsBuilder.UseQuerySplittingBehavior(QuerySplittingBehavior.SplitQuery); |
|
|
|
mySQLOptionsAction?.Invoke(optionsBuilder); |
|
|
|
}); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
return context.DbContextOptions.UseMySql(context.ConnectionString, ServerVersion.AutoDetect(context.ConnectionString), mySQLOptionsAction); |
|
|
|
return context.DbContextOptions.UseMySql(context.ConnectionString, |
|
|
|
ServerVersion.AutoDetect(context.ConnectionString), optionsBuilder => |
|
|
|
{ |
|
|
|
optionsBuilder.UseQuerySplittingBehavior(QuerySplittingBehavior.SplitQuery); |
|
|
|
mySQLOptionsAction?.Invoke(optionsBuilder); |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@ -13,6 +13,7 @@ |
|
|
|
// [CanBeNull] Action<OracleDbContextOptionsBuilder> oracleOptionsAction = null,
|
|
|
|
// bool useExistingConnectionIfAvailable = false)
|
|
|
|
// {
|
|
|
|
// TODO: UseQuerySplittingBehavior(QuerySplittingBehavior.SplitQuery);
|
|
|
|
// if (useExistingConnectionIfAvailable && context.ExistingConnection != null)
|
|
|
|
// {
|
|
|
|
// return context.DbContextOptions.UseOracle(context.ExistingConnection, oracleOptionsAction);
|
|
|
|
|
|
|
|
@ -12,6 +12,7 @@ |
|
|
|
// [NotNull] this AbpDbContextConfigurationContext context,
|
|
|
|
// [CanBeNull] Action<OracleDbContextOptionsBuilder> oracleOptionsAction = null)
|
|
|
|
// {
|
|
|
|
// TODO: UseQuerySplittingBehavior(QuerySplittingBehavior.SplitQuery);
|
|
|
|
// if (context.ExistingConnection != null)
|
|
|
|
// {
|
|
|
|
// return context.DbContextOptions.UseOracle(context.ExistingConnection, oracleOptionsAction);
|
|
|
|
|
|
|
|
@ -22,11 +22,19 @@ namespace Volo.Abp.EntityFrameworkCore |
|
|
|
{ |
|
|
|
if (context.ExistingConnection != null) |
|
|
|
{ |
|
|
|
return context.DbContextOptions.UseNpgsql(context.ExistingConnection, postgreSqlOptionsAction); |
|
|
|
return context.DbContextOptions.UseNpgsql(context.ExistingConnection, optionsBuilder => |
|
|
|
{ |
|
|
|
optionsBuilder.UseQuerySplittingBehavior(QuerySplittingBehavior.SplitQuery); |
|
|
|
postgreSqlOptionsAction?.Invoke(optionsBuilder); |
|
|
|
}); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
return context.DbContextOptions.UseNpgsql(context.ConnectionString, postgreSqlOptionsAction); |
|
|
|
return context.DbContextOptions.UseNpgsql(context.ConnectionString, optionsBuilder => |
|
|
|
{ |
|
|
|
optionsBuilder.UseQuerySplittingBehavior(QuerySplittingBehavior.SplitQuery); |
|
|
|
postgreSqlOptionsAction?.Invoke(optionsBuilder); |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@ -14,11 +14,19 @@ namespace Volo.Abp.EntityFrameworkCore |
|
|
|
{ |
|
|
|
if (context.ExistingConnection != null) |
|
|
|
{ |
|
|
|
return context.DbContextOptions.UseSqlServer(context.ExistingConnection, sqlServerOptionsAction); |
|
|
|
return context.DbContextOptions.UseSqlServer(context.ExistingConnection, optionsBuilder => |
|
|
|
{ |
|
|
|
optionsBuilder.UseQuerySplittingBehavior(QuerySplittingBehavior.SplitQuery); |
|
|
|
sqlServerOptionsAction?.Invoke(optionsBuilder); |
|
|
|
}); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
return context.DbContextOptions.UseSqlServer(context.ConnectionString, sqlServerOptionsAction); |
|
|
|
return context.DbContextOptions.UseSqlServer(context.ConnectionString, optionsBuilder => |
|
|
|
{ |
|
|
|
optionsBuilder.UseQuerySplittingBehavior(QuerySplittingBehavior.SplitQuery); |
|
|
|
sqlServerOptionsAction?.Invoke(optionsBuilder); |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@ -14,11 +14,19 @@ namespace Volo.Abp.EntityFrameworkCore |
|
|
|
{ |
|
|
|
if (context.ExistingConnection != null) |
|
|
|
{ |
|
|
|
return context.DbContextOptions.UseSqlite(context.ExistingConnection, sqliteOptionsAction); |
|
|
|
return context.DbContextOptions.UseSqlite(context.ExistingConnection, optionsBuilder => |
|
|
|
{ |
|
|
|
optionsBuilder.UseQuerySplittingBehavior(QuerySplittingBehavior.SplitQuery); |
|
|
|
sqliteOptionsAction?.Invoke(optionsBuilder); |
|
|
|
}); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
return context.DbContextOptions.UseSqlite(context.ConnectionString, sqliteOptionsAction); |
|
|
|
return context.DbContextOptions.UseSqlite(context.ConnectionString, optionsBuilder => |
|
|
|
{ |
|
|
|
optionsBuilder.UseQuerySplittingBehavior(QuerySplittingBehavior.SplitQuery); |
|
|
|
sqliteOptionsAction?.Invoke(optionsBuilder); |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@ -15,7 +15,6 @@ namespace Volo.Abp.AuditLogging |
|
|
|
} |
|
|
|
|
|
|
|
return queryable |
|
|
|
.AsSplitQuery() |
|
|
|
.Include(x => x.Actions) |
|
|
|
.Include(x => x.EntityChanges).ThenInclude(ec=>ec.PropertyChanges); |
|
|
|
} |
|
|
|
|
|
|
|
@ -13,7 +13,6 @@ namespace Volo.Abp.Identity.EntityFrameworkCore |
|
|
|
} |
|
|
|
|
|
|
|
return queryable |
|
|
|
.AsSplitQuery() |
|
|
|
.Include(x => x.Roles) |
|
|
|
.Include(x => x.Logins) |
|
|
|
.Include(x => x.Claims) |
|
|
|
|
|
|
|
@ -17,7 +17,6 @@ namespace Volo.Abp.IdentityServer |
|
|
|
} |
|
|
|
|
|
|
|
return queryable |
|
|
|
.AsSplitQuery() |
|
|
|
.Include(x => x.Secrets) |
|
|
|
.Include(x => x.UserClaims) |
|
|
|
.Include(x => x.Scopes) |
|
|
|
@ -57,7 +56,6 @@ namespace Volo.Abp.IdentityServer |
|
|
|
} |
|
|
|
|
|
|
|
return queryable |
|
|
|
.AsSplitQuery() |
|
|
|
.Include(x => x.AllowedGrantTypes) |
|
|
|
.Include(x => x.RedirectUris) |
|
|
|
.Include(x => x.PostLogoutRedirectUris) |
|
|
|
|