diff --git a/aspnet-core/services/src/Lion.AbpPro.Application/AbpProApplicationModule.cs b/aspnet-core/services/src/Lion.AbpPro.Application/AbpProApplicationModule.cs
index a3616b37..5f058bce 100644
--- a/aspnet-core/services/src/Lion.AbpPro.Application/AbpProApplicationModule.cs
+++ b/aspnet-core/services/src/Lion.AbpPro.Application/AbpProApplicationModule.cs
@@ -1,6 +1,6 @@
using Lion.AbpPro.DataDictionaryManagement;
using Lion.AbpPro.FileManagement;
-using Lion.AbpPro.FreeSqlReppsitory;
+using Lion.AbpPro.FreeSqlRepository;
using Lion.AbpPro.NotificationManagement;
using Volo.Abp.Account;
using Volo.Abp.AuditLogging;
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 d75bfccb..4c32b960 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,7 +12,7 @@
-
+
diff --git a/aspnet-core/services/src/Lion.AbpPro.Domain.Shared/Users/Dto/UserOutput.cs b/aspnet-core/services/src/Lion.AbpPro.Domain.Shared/Users/Dto/UserOutput.cs
new file mode 100644
index 00000000..30603a4c
--- /dev/null
+++ b/aspnet-core/services/src/Lion.AbpPro.Domain.Shared/Users/Dto/UserOutput.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Lion.AbpPro.Users.Dto
+{
+ public class UserOutput
+ {
+ public Guid Id { get; set; }
+ }
+}
diff --git a/aspnet-core/services/src/Lion.AbpPro.Domain/Users/IUserFreeSqlBasicRepository.cs b/aspnet-core/services/src/Lion.AbpPro.Domain/Users/IUserFreeSqlBasicRepository.cs
new file mode 100644
index 00000000..9c7179ce
--- /dev/null
+++ b/aspnet-core/services/src/Lion.AbpPro.Domain/Users/IUserFreeSqlBasicRepository.cs
@@ -0,0 +1,14 @@
+using Lion.AbpPro.Users.Dto;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Lion.AbpPro.Users
+{
+ public interface IUserFreeSqlBasicRepository
+ {
+ Task> GetListAsync();
+ }
+}
diff --git a/aspnet-core/services/src/Lion.AbpPro.FreeSqlReppsitory/AbpProFreeSqlModule.cs b/aspnet-core/services/src/Lion.AbpPro.FreeSqlRepository/AbpProFreeSqlModule.cs
similarity index 92%
rename from aspnet-core/services/src/Lion.AbpPro.FreeSqlReppsitory/AbpProFreeSqlModule.cs
rename to aspnet-core/services/src/Lion.AbpPro.FreeSqlRepository/AbpProFreeSqlModule.cs
index aeb1f7c3..7f191ad9 100644
--- a/aspnet-core/services/src/Lion.AbpPro.FreeSqlReppsitory/AbpProFreeSqlModule.cs
+++ b/aspnet-core/services/src/Lion.AbpPro.FreeSqlRepository/AbpProFreeSqlModule.cs
@@ -2,7 +2,7 @@
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Modularity;
-namespace Lion.AbpPro.FreeSqlReppsitory;
+namespace Lion.AbpPro.FreeSqlRepository;
public class AbpProFreeSqlModule : AbpModule
{
@@ -13,7 +13,7 @@ public class AbpProFreeSqlModule : AbpModule
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.FreeSqlRepository/FreeSqlBasicRepository.cs
similarity index 93%
rename from aspnet-core/services/src/Lion.AbpPro.FreeSqlReppsitory/FreeSqlBasicRepository.cs
rename to aspnet-core/services/src/Lion.AbpPro.FreeSqlRepository/FreeSqlBasicRepository.cs
index 2ed04944..0e5fc9db 100644
--- a/aspnet-core/services/src/Lion.AbpPro.FreeSqlReppsitory/FreeSqlBasicRepository.cs
+++ b/aspnet-core/services/src/Lion.AbpPro.FreeSqlRepository/FreeSqlBasicRepository.cs
@@ -1,7 +1,7 @@
using Volo.Abp.Domain.Services;
using Volo.Abp.Threading;
-namespace Lion.AbpPro.FreeSqlReppsitory;
+namespace Lion.AbpPro.FreeSqlRepository;
public abstract class FreeSqlBasicRepository : DomainService
{
diff --git a/aspnet-core/services/src/Lion.AbpPro.FreeSqlReppsitory/Lion.AbpPro.FreeSqlReppsitory.csproj b/aspnet-core/services/src/Lion.AbpPro.FreeSqlRepository/Lion.AbpPro.FreeSqlRepository.csproj
similarity index 100%
rename from aspnet-core/services/src/Lion.AbpPro.FreeSqlReppsitory/Lion.AbpPro.FreeSqlReppsitory.csproj
rename to aspnet-core/services/src/Lion.AbpPro.FreeSqlRepository/Lion.AbpPro.FreeSqlRepository.csproj
diff --git a/aspnet-core/services/src/Lion.AbpPro.FreeSqlRepository/UserFreeSqlBasicRepository.cs b/aspnet-core/services/src/Lion.AbpPro.FreeSqlRepository/UserFreeSqlBasicRepository.cs
new file mode 100644
index 00000000..d245872b
--- /dev/null
+++ b/aspnet-core/services/src/Lion.AbpPro.FreeSqlRepository/UserFreeSqlBasicRepository.cs
@@ -0,0 +1,17 @@
+using Lion.AbpPro.Users;
+using Lion.AbpPro.Users.Dto;
+
+namespace Lion.AbpPro.FreeSqlRepository
+{
+ public class UserFreeSqlBasicRepository : FreeSqlBasicRepository, IUserFreeSqlBasicRepository
+ {
+ public async Task> GetListAsync()
+ {
+ var sql = "select id from AbpUsers";
+ var result = await FreeSql.Select()
+ .WithSql(sql)
+ .ToListAsync();
+ return result;
+ }
+ }
+}
diff --git a/aspnet-core/services/test/Lion.AbpPro.FreeSqlRepository.Tests/AbpProFreeSqlRepositoryTestBase.cs b/aspnet-core/services/test/Lion.AbpPro.FreeSqlRepository.Tests/AbpProFreeSqlRepositoryTestBase.cs
new file mode 100644
index 00000000..8af1ddb4
--- /dev/null
+++ b/aspnet-core/services/test/Lion.AbpPro.FreeSqlRepository.Tests/AbpProFreeSqlRepositoryTestBase.cs
@@ -0,0 +1,13 @@
+using Lion.AbpPro.FreeSqlReppsitory.Tests;
+using Lion.AbpPro.Localization;
+
+namespace Lion.AbpPro.FreeSqlRepository.Tests
+{
+ public abstract class AbpProFreeSqlRepositoryTestBase: AbpProTestBase
+ {
+ protected AbpProFreeSqlRepositoryTestBase()
+ {
+ ServiceProvider.InitializeLocalization();
+ }
+ }
+}
diff --git a/aspnet-core/services/test/Lion.AbpPro.FreeSqlRepository.Tests/AbpProFreeSqlRepositoryTestModule.cs b/aspnet-core/services/test/Lion.AbpPro.FreeSqlRepository.Tests/AbpProFreeSqlRepositoryTestModule.cs
new file mode 100644
index 00000000..dc65b4f6
--- /dev/null
+++ b/aspnet-core/services/test/Lion.AbpPro.FreeSqlRepository.Tests/AbpProFreeSqlRepositoryTestModule.cs
@@ -0,0 +1,78 @@
+using System;
+using System.Linq;
+using Lion.AbpPro.EntityFrameworkCore;
+using Lion.AbpPro.FreeSqlRepository;
+using Microsoft.Data.Sqlite;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Storage;
+using Microsoft.Extensions.Configuration;
+using Microsoft.Extensions.DependencyInjection;
+using Volo.Abp;
+using Volo.Abp.EntityFrameworkCore;
+using Volo.Abp.EntityFrameworkCore.Sqlite;
+using Volo.Abp.Modularity;
+
+namespace Lion.AbpPro.FreeSqlReppsitory.Tests;
+
+[DependsOn(
+ typeof(AbpProTestBaseModule),
+ typeof(AbpProEntityFrameworkCoreTestModule),
+ typeof(AbpProFreeSqlModule)
+)]
+public class AbpProFreeSqlRepositoryTestModule : AbpModule
+{
+ private const string ConnectionString = "Data Source=:memory:";
+ private SqliteConnection _sqliteConnection;
+
+ public override void ConfigureServices(ServiceConfigurationContext context)
+ {
+
+ var freeSql = new FreeSql.FreeSqlBuilder()
+ .UseConnectionString(FreeSql.DataType.Sqlite, ConnectionString)
+ .UseAutoSyncStructure(true)
+ .Build();
+ context.Services.AddSingleton(freeSql);
+ var connection = new SqliteConnection(ConnectionString);
+ ConfigureInMemorySqlite(context.Services, freeSql);
+ }
+
+
+ private void ConfigureInMemorySqlite(IServiceCollection services, IFreeSql freeSql)
+ {
+ _sqliteConnection = CreateDatabaseAndGetConnection(freeSql);
+
+ //services.Configure(options =>
+ //{
+ // options.PreConfigure(options => { options.DbContextOptions.UseBatchEF_Sqlite(); });
+ // options.Configure(context => { context.DbContextOptions.UseSqlite(_sqliteConnection); });
+ //});
+ }
+
+ public override void OnApplicationShutdown(ApplicationShutdownContext context)
+ {
+ // _sqliteConnection.Dispose();
+ }
+
+ private static SqliteConnection CreateDatabaseAndGetConnection(IFreeSql freeSql)
+ {
+ var connection = new SqliteConnection(ConnectionString);
+ //connection.Open();
+
+ var options = new DbContextOptionsBuilder()
+ .UseSqlite(connection)
+ .Options;
+
+ using (var context = new AbpProDbContext(options))
+ {
+ foreach (var entityType in context.Model.GetEntityTypes())
+ {
+ freeSql.CodeFirst.SyncStructure(entityType.ClrType, entityType.GetTableName(), true);
+ }
+
+ //context.GetService().CreateTables();
+ }
+
+ return connection;
+ }
+}
\ No newline at end of file
diff --git a/aspnet-core/services/test/Lion.AbpPro.FreeSqlRepository.Tests/Lion.AbpPro.FreeSqlRepository.Tests.csproj b/aspnet-core/services/test/Lion.AbpPro.FreeSqlRepository.Tests/Lion.AbpPro.FreeSqlRepository.Tests.csproj
new file mode 100644
index 00000000..dabe9e51
--- /dev/null
+++ b/aspnet-core/services/test/Lion.AbpPro.FreeSqlRepository.Tests/Lion.AbpPro.FreeSqlRepository.Tests.csproj
@@ -0,0 +1,24 @@
+
+
+
+ net6.0
+
+ false
+
+ Lion.AbpPro.FreeSqlRepository.Tests
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/aspnet-core/services/test/Lion.AbpPro.FreeSqlRepository.Tests/Users/UserFreeSqlBasicRepository_Tests.cs b/aspnet-core/services/test/Lion.AbpPro.FreeSqlRepository.Tests/Users/UserFreeSqlBasicRepository_Tests.cs
new file mode 100644
index 00000000..c0bea6af
--- /dev/null
+++ b/aspnet-core/services/test/Lion.AbpPro.FreeSqlRepository.Tests/Users/UserFreeSqlBasicRepository_Tests.cs
@@ -0,0 +1,26 @@
+using System.Threading.Tasks;
+using Lion.AbpPro.Users;
+using Shouldly;
+using Xunit;
+
+namespace Lion.AbpPro.FreeSqlRepository.Tests.Users
+{
+
+
+ public class UserFreeSqlBasicRepository_Tests: AbpProFreeSqlRepositoryTestBase
+ {
+ private readonly IUserFreeSqlBasicRepository _userFreeSqlBasicRepository;
+ public UserFreeSqlBasicRepository_Tests()
+ {
+ _userFreeSqlBasicRepository = GetRequiredService();
+ }
+
+ [Fact]
+ public async Task Should_NotThrow_ListAsyncTest()
+ {
+ var result = await _userFreeSqlBasicRepository.GetListAsync();
+ result.ShouldNotBeNull();
+ }
+ }
+
+}
diff --git a/aspnet-core/services/test/Lion.AbpPro.FreeSqlReppsitory.Tests1/AbpProFreeSqlRepositoryTestBase.cs b/aspnet-core/services/test/Lion.AbpPro.FreeSqlReppsitory.Tests1/AbpProFreeSqlRepositoryTestBase.cs
new file mode 100644
index 00000000..9b8c4455
--- /dev/null
+++ b/aspnet-core/services/test/Lion.AbpPro.FreeSqlReppsitory.Tests1/AbpProFreeSqlRepositoryTestBase.cs
@@ -0,0 +1,18 @@
+using Lion.AbpPro.FreeSqlReppsitory.Tests;
+using Lion.AbpPro.Localization;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Lion.AbpPro
+{
+ public abstract class AbpProFreeSqlRepositoryTestBase: AbpProTestBase
+ {
+ public AbpProFreeSqlRepositoryTestBase()
+ {
+ ServiceProvider.InitializeLocalization();
+ }
+ }
+}
diff --git a/aspnet-core/services/test/Lion.AbpPro.FreeSqlReppsitory.Tests1/AbpProFreeSqlRepositoryTestModule.cs b/aspnet-core/services/test/Lion.AbpPro.FreeSqlReppsitory.Tests1/AbpProFreeSqlRepositoryTestModule.cs
new file mode 100644
index 00000000..848910b6
--- /dev/null
+++ b/aspnet-core/services/test/Lion.AbpPro.FreeSqlReppsitory.Tests1/AbpProFreeSqlRepositoryTestModule.cs
@@ -0,0 +1,30 @@
+using Microsoft.Extensions.Configuration;
+using Microsoft.Extensions.DependencyInjection;
+using Volo.Abp.Modularity;
+
+namespace Lion.AbpPro.FreeSqlReppsitory.Tests;
+
+[DependsOn(
+ typeof(AbpProTestBaseModule),
+ typeof(AbpProFreeSqlModule)
+ )]
+
+public class AbpProFreeSqlRepositoryTestModule: 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.Sqlite, @"Data Source=|DataDirectory|\document.db;Pooling=true;Max Pool Size=10")
+ // .UseAutoSyncStructure(true)
+ // .Build();
+
+ // context.Services.AddSingleton(freeSql);
+ //}
+
+}
\ No newline at end of file
diff --git a/aspnet-core/services/test/Lion.AbpPro.FreeSqlReppsitory.Tests1/Lion.AbpPro.FreeSqlReppsitory.Tests.csproj b/aspnet-core/services/test/Lion.AbpPro.FreeSqlReppsitory.Tests1/Lion.AbpPro.FreeSqlReppsitory.Tests.csproj
new file mode 100644
index 00000000..752d23e1
--- /dev/null
+++ b/aspnet-core/services/test/Lion.AbpPro.FreeSqlReppsitory.Tests1/Lion.AbpPro.FreeSqlReppsitory.Tests.csproj
@@ -0,0 +1,13 @@
+
+
+
+ net6.0
+ Lion.AbpPro
+ false
+
+
+
+
+
+
+
diff --git a/aspnet-core/services/test/Lion.AbpPro.FreeSqlReppsitory.Tests1/Users/UserFreeSqlBasicRepository_Tests.cs b/aspnet-core/services/test/Lion.AbpPro.FreeSqlReppsitory.Tests1/Users/UserFreeSqlBasicRepository_Tests.cs
new file mode 100644
index 00000000..64ae6f45
--- /dev/null
+++ b/aspnet-core/services/test/Lion.AbpPro.FreeSqlReppsitory.Tests1/Users/UserFreeSqlBasicRepository_Tests.cs
@@ -0,0 +1,29 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Shouldly;
+using Xunit;
+
+namespace Lion.AbpPro.Users
+{
+
+
+ public class UserFreeSqlBasicRepository_Tests: AbpProFreeSqlRepositoryTestBase
+ {
+ //private readonly IUserFreeSqlBasicRepository _userFreeSqlBasicRepository;
+ //public UserFreeSqlBasicRepositoryTest()
+ //{
+ // _userFreeSqlBasicRepository = GetRequiredService();
+ //}
+
+ [Fact]
+ public void Should_NotThrow_ListAsyncTest()
+ {
+ //var result = await _userFreeSqlBasicRepository.GetListAsync();
+ var s = 1;
+ }
+ }
+
+}
diff --git a/aspnet-core/services/test/Lion.AbpPro.TestBase/AbpProTestBaseModule.cs b/aspnet-core/services/test/Lion.AbpPro.TestBase/AbpProTestBaseModule.cs
index 05833854..88a4ddd3 100644
--- a/aspnet-core/services/test/Lion.AbpPro.TestBase/AbpProTestBaseModule.cs
+++ b/aspnet-core/services/test/Lion.AbpPro.TestBase/AbpProTestBaseModule.cs
@@ -43,7 +43,7 @@ namespace Lion.AbpPro
public override void OnApplicationInitialization(ApplicationInitializationContext context)
{
- SeedTestData(context);
+ //SeedTestData(context);
}
private static void SeedTestData(ApplicationInitializationContext context)