diff --git a/aspnet-core/Directory.Build.props b/aspnet-core/Directory.Build.props
index 2bea56c1..1c765496 100644
--- a/aspnet-core/Directory.Build.props
+++ b/aspnet-core/Directory.Build.props
@@ -30,6 +30,7 @@
17.0.0
2.6.1
6.0.11
+ 3.0.100
\ No newline at end of file
diff --git a/aspnet-core/Lion.AbpPro.sln b/aspnet-core/Lion.AbpPro.sln
index 863b2195..8b63f2a5 100644
--- a/aspnet-core/Lion.AbpPro.sln
+++ b/aspnet-core/Lion.AbpPro.sln
@@ -168,6 +168,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Lion.AbpPro.FileManagement.
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Lion.AbpPro.FileManagement.HttpApi.Host", "modules\FileManagement\host\Lion.AbpPro.FileManagement.HttpApi.Host\Lion.AbpPro.FileManagement.HttpApi.Host.csproj", "{831CD22A-AC6E-4515-AB24-8C96B34C717F}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lion.AbpPro.FreeSqlReppsitory", "services\src\Lion.AbpPro.FreeSqlReppsitory\Lion.AbpPro.FreeSqlReppsitory.csproj", "{27C7A0E6-4C2E-4AFF-9DE7-1F526DDC0D18}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -398,6 +400,10 @@ Global
{831CD22A-AC6E-4515-AB24-8C96B34C717F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{831CD22A-AC6E-4515-AB24-8C96B34C717F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{831CD22A-AC6E-4515-AB24-8C96B34C717F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {27C7A0E6-4C2E-4AFF-9DE7-1F526DDC0D18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {27C7A0E6-4C2E-4AFF-9DE7-1F526DDC0D18}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {27C7A0E6-4C2E-4AFF-9DE7-1F526DDC0D18}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {27C7A0E6-4C2E-4AFF-9DE7-1F526DDC0D18}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -477,6 +483,7 @@ Global
{9201AEE4-2E6D-4A48-805F-3F3C6878BC0B} = {40BF21CB-4520-45A6-A588-5FFB95BAC87C}
{78589964-923E-4803-9B74-183487C3ED0F} = {40BF21CB-4520-45A6-A588-5FFB95BAC87C}
{831CD22A-AC6E-4515-AB24-8C96B34C717F} = {C188A1F4-9601-42E5-9A0A-B282E13EAC41}
+ {27C7A0E6-4C2E-4AFF-9DE7-1F526DDC0D18} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {28315BFD-90E7-4E14-A2EA-F3D23AF4126F}
diff --git a/aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/AbpProHttpApiHostModule.cs b/aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/AbpProHttpApiHostModule.cs
index c0f19e29..72cf7124 100644
--- a/aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/AbpProHttpApiHostModule.cs
+++ b/aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/AbpProHttpApiHostModule.cs
@@ -167,7 +167,8 @@ namespace Lion.AbpPro
//QueuePollInterval = TimeSpan.Zero,
//UseRecommendedIsolationLevel = true,
//DisableGlobalLocks = true
- JobExpirationCheckInterval = TimeSpan.FromMinutes(30)
+ JobExpirationCheckInterval = TimeSpan.FromMinutes(30),
+ TablesPrefix = "Hangfire_"
}));
var delaysInSeconds = new int[] { 10, 60, 60 * 3 }; // 重试时间间隔
var Attempts = 3; // 重试次数
diff --git a/aspnet-core/services/src/Lion.AbpPro.Application/AbpProApplicationModule.cs b/aspnet-core/services/src/Lion.AbpPro.Application/AbpProApplicationModule.cs
index 4c26c6c5..a3616b37 100644
--- a/aspnet-core/services/src/Lion.AbpPro.Application/AbpProApplicationModule.cs
+++ b/aspnet-core/services/src/Lion.AbpPro.Application/AbpProApplicationModule.cs
@@ -1,5 +1,6 @@
using Lion.AbpPro.DataDictionaryManagement;
using Lion.AbpPro.FileManagement;
+using Lion.AbpPro.FreeSqlReppsitory;
using Lion.AbpPro.NotificationManagement;
using Volo.Abp.Account;
using Volo.Abp.AuditLogging;
@@ -25,7 +26,8 @@ namespace Lion.AbpPro
typeof(AbpAuditLoggingDomainModule),
typeof(DataDictionaryManagementApplicationModule),
typeof(NotificationManagementApplicationModule),
- typeof(FileManagementApplicationModule)
+ typeof(FileManagementApplicationModule),
+ typeof(AbpProFreeSqlModule)
)]
public class AbpProApplicationModule : AbpModule
{
diff --git a/aspnet-core/services/src/Lion.AbpPro.Application/Lion.AbpPro.Application.csproj b/aspnet-core/services/src/Lion.AbpPro.Application/Lion.AbpPro.Application.csproj
index e983e5b8..d75bfccb 100644
--- a/aspnet-core/services/src/Lion.AbpPro.Application/Lion.AbpPro.Application.csproj
+++ b/aspnet-core/services/src/Lion.AbpPro.Application/Lion.AbpPro.Application.csproj
@@ -12,6 +12,7 @@
+
diff --git a/aspnet-core/services/src/Lion.AbpPro.Application/Settings/SettingAppService.cs b/aspnet-core/services/src/Lion.AbpPro.Application/Settings/SettingAppService.cs
index e9fe92ab..8ebb3937 100644
--- a/aspnet-core/services/src/Lion.AbpPro.Application/Settings/SettingAppService.cs
+++ b/aspnet-core/services/src/Lion.AbpPro.Application/Settings/SettingAppService.cs
@@ -17,18 +17,15 @@ namespace Lion.AbpPro.Settings
{
private readonly ISettingDefinitionManager _settingDefinitionManager;
private readonly ISettingManager _settingManager;
- private readonly IStringLocalizer _localizer;
private readonly IStringLocalizerFactory _factory;
public SettingAppService(
ISettingDefinitionManager settingDefinitionManager,
ISettingManager settingManager,
- IStringLocalizer localizer,
IStringLocalizerFactory factory)
{
_settingDefinitionManager = settingDefinitionManager;
_settingManager = settingManager;
- _localizer = localizer;
_factory = factory;
}
@@ -43,7 +40,7 @@ namespace Lion.AbpPro.Settings
new SettingOutput
{
Group = s.Key,
- GroupDisplayName = _localizer[s.Key]
+ GroupDisplayName = _factory.CreateDefaultOrNull()[s.Key]
}).ToList();
foreach (var item in settingOutput)
diff --git a/aspnet-core/services/src/Lion.AbpPro.FreeSqlReppsitory/AbpProFreeSqlModule.cs b/aspnet-core/services/src/Lion.AbpPro.FreeSqlReppsitory/AbpProFreeSqlModule.cs
new file mode 100644
index 00000000..aeb1f7c3
--- /dev/null
+++ b/aspnet-core/services/src/Lion.AbpPro.FreeSqlReppsitory/AbpProFreeSqlModule.cs
@@ -0,0 +1,19 @@
+using Microsoft.Extensions.Configuration;
+using Microsoft.Extensions.DependencyInjection;
+using Volo.Abp.Modularity;
+
+namespace Lion.AbpPro.FreeSqlReppsitory;
+
+public class AbpProFreeSqlModule : AbpModule
+{
+ public override void ConfigureServices(ServiceConfigurationContext context)
+ {
+ var configuration = context.Services.GetConfiguration();
+ var connectionString = configuration.GetConnectionString("Default");
+ var freeSql = new FreeSql.FreeSqlBuilder()
+ .UseConnectionString(FreeSql.DataType.MySql, connectionString)
+ .Build();
+
+ context.Services.AddSingleton(freeSql);
+ }
+}
\ No newline at end of file
diff --git a/aspnet-core/services/src/Lion.AbpPro.FreeSqlReppsitory/FreeSqlBasicRepository.cs b/aspnet-core/services/src/Lion.AbpPro.FreeSqlReppsitory/FreeSqlBasicRepository.cs
new file mode 100644
index 00000000..2ed04944
--- /dev/null
+++ b/aspnet-core/services/src/Lion.AbpPro.FreeSqlReppsitory/FreeSqlBasicRepository.cs
@@ -0,0 +1,17 @@
+using Volo.Abp.Domain.Services;
+using Volo.Abp.Threading;
+
+namespace Lion.AbpPro.FreeSqlReppsitory;
+
+public abstract class FreeSqlBasicRepository : DomainService
+{
+ protected IFreeSql FreeSql => LazyServiceProvider.LazyGetRequiredService();
+
+ private ICancellationTokenProvider CancellationTokenProvider =>
+ LazyServiceProvider.LazyGetService(NullCancellationTokenProvider.Instance);
+
+ protected virtual CancellationToken GetCancellationToken(CancellationToken preferredValue = default)
+ {
+ return CancellationTokenProvider.FallbackToProvider(preferredValue);
+ }
+}
\ No newline at end of file
diff --git a/aspnet-core/services/src/Lion.AbpPro.FreeSqlReppsitory/Lion.AbpPro.FreeSqlReppsitory.csproj b/aspnet-core/services/src/Lion.AbpPro.FreeSqlReppsitory/Lion.AbpPro.FreeSqlReppsitory.csproj
new file mode 100644
index 00000000..2d1e217d
--- /dev/null
+++ b/aspnet-core/services/src/Lion.AbpPro.FreeSqlReppsitory/Lion.AbpPro.FreeSqlReppsitory.csproj
@@ -0,0 +1,17 @@
+
+
+
+ net6.0
+ enable
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/aspnet-core/services/test/Lion.AbpPro.TestBase/Lion.AbpPro.TestBase.csproj b/aspnet-core/services/test/Lion.AbpPro.TestBase/Lion.AbpPro.TestBase.csproj
index e3750eac..594fb957 100644
--- a/aspnet-core/services/test/Lion.AbpPro.TestBase/Lion.AbpPro.TestBase.csproj
+++ b/aspnet-core/services/test/Lion.AbpPro.TestBase/Lion.AbpPro.TestBase.csproj
@@ -24,4 +24,12 @@
+
+
+ true
+ PreserveNewest
+ PreserveNewest
+
+
+
diff --git a/aspnet-core/services/test/Lion.AbpPro.TestBase/appsettings.json b/aspnet-core/services/test/Lion.AbpPro.TestBase/appsettings.json
new file mode 100644
index 00000000..738a223d
--- /dev/null
+++ b/aspnet-core/services/test/Lion.AbpPro.TestBase/appsettings.json
@@ -0,0 +1,5 @@
+{
+ "ConnectionStrings": {
+ "Default": "Data Source=localhost;Database=LionAbpProDB;uid=root;pwd=1q2w3E*;charset=utf8mb4;Allow User Variables=true;AllowLoadLocalInfile=true"
+ }
+}
\ No newline at end of file