From c01b4c8e10f91f3fbb5dd5622abec0d9848e9a5e Mon Sep 17 00:00:00 2001 From: 2881099 <2881099@qq.com> Date: Mon, 19 Aug 2024 07:57:11 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E7=A7=BB=E9=99=A4=20fsql.GetGuidRepository?= =?UTF-8?q?=20=E6=94=B9=E7=94=A8=20fsql.GetRepository()?= =?UTF-8?q?=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/SongController.cs | 12 ++++ .../FreeSql.Tests/FreeSql.Tests.csproj | 1 - FreeSql.Tests/FreeSql.Tests/Issues/1208.cs | 68 +++++++++---------- FreeSql.Tests/FreeSql.Tests/UnitTest2.cs | 10 +++ FreeSql.Tests/FreeSql.Tests/g.cs | 1 - 5 files changed, 56 insertions(+), 36 deletions(-) diff --git a/Examples/repository_01/Controllers/SongController.cs b/Examples/repository_01/Controllers/SongController.cs index bb7869e0..b4a8f9f1 100644 --- a/Examples/repository_01/Controllers/SongController.cs +++ b/Examples/repository_01/Controllers/SongController.cs @@ -43,6 +43,18 @@ namespace restful.Controllers Console.Write(reposTest.Select.ToSql()); _songRepository = repos4; + + //test code + var curd1 = fsql.GetRepository(); + var curd2 = fsql.GetRepository(); + var curd3 = fsql.GetRepository(); + + Console.WriteLine(reposSong.Select.ToSql()); + + using (reposSong.DataFilter.DisableAll()) + { + Console.WriteLine(reposSong.Select.ToSql()); + } } [HttpGet] diff --git a/FreeSql.Tests/FreeSql.Tests/FreeSql.Tests.csproj b/FreeSql.Tests/FreeSql.Tests/FreeSql.Tests.csproj index 523ac1bc..c6f3aacf 100644 --- a/FreeSql.Tests/FreeSql.Tests/FreeSql.Tests.csproj +++ b/FreeSql.Tests/FreeSql.Tests/FreeSql.Tests.csproj @@ -20,7 +20,6 @@ - diff --git a/FreeSql.Tests/FreeSql.Tests/Issues/1208.cs b/FreeSql.Tests/FreeSql.Tests/Issues/1208.cs index c58b3d68..ab0ab5b7 100644 --- a/FreeSql.Tests/FreeSql.Tests/Issues/1208.cs +++ b/FreeSql.Tests/FreeSql.Tests/Issues/1208.cs @@ -65,23 +65,23 @@ WHERE (exists(SELECT 1 limit 0,1)) ORDER BY a.""Id"" DESC", sql); -// using (userRepository.DataFilter.Disable("TenantQuery")) -// { -// sql = userRepository.Select -// .Where(i => i.DoorDevices.AsSelect().Any(x => x.Id == deviceId)) -// .OrderByDescending(true, a => a.Id) -// .ToSql(); -// Assert.Equal(@"SELECT a.""Id"", a.""TenantId"" -//FROM ""issues1208_User"" a -//WHERE (exists(SELECT 1 -// FROM ""issues1208_DoorDeviceUser"" Mx_Mi -// WHERE (Mx_Mi.""UserId"" = a.""Id"") AND (exists(SELECT 1 -// FROM ""issues1208_DoorDevice"" x -// WHERE (x.""Id"" = 100) AND (x.""Id"" = Mx_Mi.""DoorDeviceId"") -// limit 0,1)) -// limit 0,1)) -//ORDER BY a.""Id"" DESC", sql); -// } + using (userRepository.DataFilter.Disable("TenantQuery")) + { + sql = userRepository.Select + .Where(i => i.DoorDevices.AsSelect().Any(x => x.Id == deviceId)) + .OrderByDescending(true, a => a.Id) + .ToSql(); + Assert.Equal(@"SELECT a.""Id"", a.""TenantId"" +FROM ""issues1208_User"" a +WHERE (exists(SELECT 1 + FROM ""issues1208_DoorDeviceUser"" Mx_Mi + WHERE (Mx_Mi.""UserId"" = a.""Id"") AND (exists(SELECT 1 + FROM ""issues1208_DoorDevice"" x + WHERE (x.""Id"" = 100) AND (x.""Id"" = Mx_Mi.""DoorDeviceId"") + limit 0,1)) + limit 0,1)) +ORDER BY a.""Id"" DESC", sql); + } sql = userRepository.Select .Where(i => i.DoorDevices.Any(x => x.Id == deviceId)) @@ -113,23 +113,23 @@ WHERE (exists(SELECT 1 limit 0,1)) ORDER BY a.""Id"" DESC", sql); -// using (userRepository.DataFilter.Disable("TenantQuery")) -// { -// sql = userRepository.Select -// .Where(i => i.DoorDevices.Any(x => x.Id == deviceId)) -// .OrderByDescending(true, a => a.Id) -// .ToSql(); -// Assert.Equal(@"SELECT a.""Id"", a.""TenantId"" -//FROM ""issues1208_User"" a -//WHERE (exists(SELECT 1 -// FROM ""issues1208_DoorDevice"" x -// WHERE (exists(SELECT 1 -// FROM ""issues1208_DoorDeviceUser"" Mx_Ma -// WHERE (Mx_Ma.""DoorDeviceId"" = x.""Id"") AND (Mx_Ma.""UserId"" = a.""Id"") -// limit 0,1)) AND (x.""Id"" = 100) -// limit 0,1)) -//ORDER BY a.""Id"" DESC", sql); -// } + using (userRepository.DataFilter.Disable("TenantQuery")) + { + sql = userRepository.Select + .Where(i => i.DoorDevices.Any(x => x.Id == deviceId)) + .OrderByDescending(true, a => a.Id) + .ToSql(); + Assert.Equal(@"SELECT a.""Id"", a.""TenantId"" +FROM ""issues1208_User"" a +WHERE (exists(SELECT 1 + FROM ""issues1208_DoorDevice"" x + WHERE (exists(SELECT 1 + FROM ""issues1208_DoorDeviceUser"" Mx_Ma + WHERE (Mx_Ma.""DoorDeviceId"" = x.""Id"") AND (Mx_Ma.""UserId"" = a.""Id"") + limit 0,1)) AND (x.""Id"" = 100) + limit 0,1)) +ORDER BY a.""Id"" DESC", sql); + } } } diff --git a/FreeSql.Tests/FreeSql.Tests/UnitTest2.cs b/FreeSql.Tests/FreeSql.Tests/UnitTest2.cs index 6521ac81..19a7dedf 100644 --- a/FreeSql.Tests/FreeSql.Tests/UnitTest2.cs +++ b/FreeSql.Tests/FreeSql.Tests/UnitTest2.cs @@ -382,6 +382,16 @@ namespace FreeSql.Tests var gft2 = g.mysql.Select().Where(a => a.id == Guid.NewGuid()).ToList(); var gft3 = g.mysql.Select().Where(a => a.id == Guid.NewGuid()).ToList(); + var repo1 = g.mysql.GetRepository(); + using (repo1.DataFilter.Disable("gft1", "gft2", "gft3")) + repo1.Get(Guid.NewGuid()); + var repo2 = g.mysql.GetRepository(); + using (repo2.DataFilter.Disable("gft1", "gft2", "gft3")) + repo2.Get(Guid.NewGuid()); + var repo3 = g.mysql.GetRepository(); + using (repo3.DataFilter.Disable("gft1", "gft2", "gft3")) + repo3.Get(Guid.NewGuid()); + g.sqlserver.Delete().Where("1=1").ExecuteAffrows(); g.mysql.Delete().Where("1=1").ExecuteAffrows(); g.pgsql.Delete().Where("1=1").ExecuteAffrows(); diff --git a/FreeSql.Tests/FreeSql.Tests/g.cs b/FreeSql.Tests/FreeSql.Tests/g.cs index f7469dba..c35216a2 100644 --- a/FreeSql.Tests/FreeSql.Tests/g.cs +++ b/FreeSql.Tests/FreeSql.Tests/g.cs @@ -1,5 +1,4 @@ using Npgsql; -using Npgsql.Internal; using System; using System.Collections.Generic; using System.Diagnostics;