diff --git a/Yi.Abp.Net8/test/Yi.Abp.Test/Demo/ThreadDb_Test.cs b/Yi.Abp.Net8/test/Yi.Abp.Test/Demo/ThreadDb_Test.cs new file mode 100644 index 00000000..7a519d88 --- /dev/null +++ b/Yi.Abp.Net8/test/Yi.Abp.Test/Demo/ThreadDb_Test.cs @@ -0,0 +1,110 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Uow; +using Xunit; +using Yi.Framework.Rbac.Application.Contracts.IServices; +using Yi.Framework.Rbac.Domain.Entities; +using Yi.Framework.Rbac.Domain.Shared.Consts; +using Yi.Framework.SqlSugarCore.Abstractions; + +namespace Yi.Abp.Test.Demo +{ + public class ThreadDb_Test : YiAbpTestBase + { + /// + /// 并发 + /// + /// + [Fact] + public async Task Repository_Test() + { + try + { + var rep = GetRequiredService>(); + List tasks = new List(); + for (int i = 0; i < 10; i++) + { + tasks.Add(Task.Run(async () => + { + await rep.GetListAsync(); + })); + } + await Task.WhenAll(tasks); + await Console.Out.WriteLineAsync("成功"); + } + catch + (Exception ex) + { + Console.WriteLine(ex.ToString()); + } + } + + /// + /// 工作单元 + /// + /// + [Fact] + public async Task Uow_In_Test() + { + try + { + var rep = GetRequiredService>(); + List tasks = new List(); + for (int i = 0; i < 10; i++) + { + tasks.Add(Task.Run(async () => + { + using (var uow = GetRequiredService().Begin(true, true)) + { + await rep.GetListAsync(); + await uow.CompleteAsync(); + } + })); + } + await Task.WhenAll(tasks); + await Console.Out.WriteLineAsync("成功"); + } + catch + (Exception ex) + { + Console.WriteLine(ex.ToString()); + } + } + + + /// + /// 工作单元 + /// + /// + [Fact] + public async Task Uow_Out_Test() + { + try + { + var rep = GetRequiredService>(); + List tasks = new List(); + using (var uow = GetRequiredService().Begin(true, true)) + { + for (int i = 0; i < 10; i++) + { + tasks.Add(Task.Run(async () => + { + await rep.GetListAsync(); + await uow.CompleteAsync(); + })); + } + } + await Task.WhenAll(tasks); + await Console.Out.WriteLineAsync("成功"); + } + catch + (Exception ex) + { + Console.WriteLine(ex.ToString()); + } + } + } +} diff --git a/Yi.Abp.Net8/test/Yi.Abp.Test/Yi.Abp.Test.csproj b/Yi.Abp.Net8/test/Yi.Abp.Test/Yi.Abp.Test.csproj index dccbd824..b871335d 100644 --- a/Yi.Abp.Net8/test/Yi.Abp.Test/Yi.Abp.Test.csproj +++ b/Yi.Abp.Net8/test/Yi.Abp.Test/Yi.Abp.Test.csproj @@ -6,9 +6,15 @@ enable + + + PreserveNewest + true + PreserveNewest + Always true diff --git a/Yi.Abp.Net8/test/Yi.Abp.Test/YiAbpTestBase.cs b/Yi.Abp.Net8/test/Yi.Abp.Test/YiAbpTestBase.cs index c9b69fa7..0ea415ba 100644 --- a/Yi.Abp.Net8/test/Yi.Abp.Test/YiAbpTestBase.cs +++ b/Yi.Abp.Net8/test/Yi.Abp.Test/YiAbpTestBase.cs @@ -40,7 +40,7 @@ namespace Yi.Abp.Test protected virtual void ConfigureAppConfiguration(IConfigurationBuilder configurationBuilder) { configurationBuilder.AddJsonFile("appsettings.json"); - //configurationBuilder.AddJsonFile("appsettings.Development.json"); + configurationBuilder.AddJsonFile("appsettings.Development.json"); } }