From 677b36a354d6f972ba022760bd7a8321b1816633 Mon Sep 17 00:00:00 2001 From: maliming Date: Tue, 17 Nov 2020 14:12:24 +0800 Subject: [PATCH] Enabling split queries globally. --- ...DbContextConfigurationContextMySQLExtensions.cs | 14 ++++++++++++-- ...xtConfigurationContextOracleDevartExtensions.cs | 1 + ...bContextConfigurationContextOracleExtensions.cs | 1 + ...textConfigurationContextPostgreSqlExtensions.cs | 12 ++++++++++-- ...ntextConfigurationContextSqlServerExtensions.cs | 12 ++++++++++-- ...bContextConfigurationContextSqliteExtensions.cs | 12 ++++++++++-- .../AbpAuditLoggingEfCoreQueryableExtensions.cs | 1 - .../IdentityEfCoreQueryableExtensions.cs | 1 - .../AbpIdentityServerEfCoreQueryableExtensions.cs | 2 -- 9 files changed, 44 insertions(+), 12 deletions(-) diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.MySQL/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextMySQLExtensions.cs b/framework/src/Volo.Abp.EntityFrameworkCore.MySQL/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextMySQLExtensions.cs index 60f4337757..7bea179323 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore.MySQL/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextMySQLExtensions.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore.MySQL/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextMySQLExtensions.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); + }); } } } diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextOracleDevartExtensions.cs b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextOracleDevartExtensions.cs index ba70772c9e..eaaed380af 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextOracleDevartExtensions.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextOracleDevartExtensions.cs @@ -13,6 +13,7 @@ // [CanBeNull] Action oracleOptionsAction = null, // bool useExistingConnectionIfAvailable = false) // { +// TODO: UseQuerySplittingBehavior(QuerySplittingBehavior.SplitQuery); // if (useExistingConnectionIfAvailable && context.ExistingConnection != null) // { // return context.DbContextOptions.UseOracle(context.ExistingConnection, oracleOptionsAction); diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextOracleExtensions.cs b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextOracleExtensions.cs index cb3a92d2cf..2dd3139a82 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextOracleExtensions.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextOracleExtensions.cs @@ -12,6 +12,7 @@ // [NotNull] this AbpDbContextConfigurationContext context, // [CanBeNull] Action oracleOptionsAction = null) // { +// TODO: UseQuerySplittingBehavior(QuerySplittingBehavior.SplitQuery); // if (context.ExistingConnection != null) // { // return context.DbContextOptions.UseOracle(context.ExistingConnection, oracleOptionsAction); diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.PostgreSql/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextPostgreSqlExtensions.cs b/framework/src/Volo.Abp.EntityFrameworkCore.PostgreSql/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextPostgreSqlExtensions.cs index 9ab28dddcb..45aa590c09 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore.PostgreSql/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextPostgreSqlExtensions.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore.PostgreSql/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextPostgreSqlExtensions.cs @@ -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); + }); } } } diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.SqlServer/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextSqlServerExtensions.cs b/framework/src/Volo.Abp.EntityFrameworkCore.SqlServer/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextSqlServerExtensions.cs index b916239c3b..47ebbef8c6 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore.SqlServer/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextSqlServerExtensions.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore.SqlServer/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextSqlServerExtensions.cs @@ -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); + }); } } } diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.Sqlite/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextSqliteExtensions.cs b/framework/src/Volo.Abp.EntityFrameworkCore.Sqlite/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextSqliteExtensions.cs index 6fd69fa42e..4778dd8101 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore.Sqlite/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextSqliteExtensions.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore.Sqlite/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextSqliteExtensions.cs @@ -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); + }); } } } diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo/Abp/AuditLogging/AbpAuditLoggingEfCoreQueryableExtensions.cs b/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo/Abp/AuditLogging/AbpAuditLoggingEfCoreQueryableExtensions.cs index 11ba294610..6dc4bfadb8 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo/Abp/AuditLogging/AbpAuditLoggingEfCoreQueryableExtensions.cs +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo/Abp/AuditLogging/AbpAuditLoggingEfCoreQueryableExtensions.cs @@ -15,7 +15,6 @@ namespace Volo.Abp.AuditLogging } return queryable - .AsSplitQuery() .Include(x => x.Actions) .Include(x => x.EntityChanges).ThenInclude(ec=>ec.PropertyChanges); } diff --git a/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityEfCoreQueryableExtensions.cs b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityEfCoreQueryableExtensions.cs index 8b6e470600..4eddc83ea3 100644 --- a/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityEfCoreQueryableExtensions.cs +++ b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityEfCoreQueryableExtensions.cs @@ -13,7 +13,6 @@ namespace Volo.Abp.Identity.EntityFrameworkCore } return queryable - .AsSplitQuery() .Include(x => x.Roles) .Include(x => x.Logins) .Include(x => x.Claims) diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/AbpIdentityServerEfCoreQueryableExtensions.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/AbpIdentityServerEfCoreQueryableExtensions.cs index 768b53f763..58cb6cc7ac 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/AbpIdentityServerEfCoreQueryableExtensions.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/AbpIdentityServerEfCoreQueryableExtensions.cs @@ -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)