From 5ded45b5f8d51e97a5104849fb465476692c34fa Mon Sep 17 00:00:00 2001 From: 2881099 <2881099@qq.com> Date: Wed, 10 Aug 2022 07:09:32 +0800 Subject: [PATCH] update testcode --- .../Curd/SqlServerSelectWithTempQueryTest.cs | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerSelectWithTempQueryTest.cs b/FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerSelectWithTempQueryTest.cs index eb3f9792..4e63a548 100644 --- a/FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerSelectWithTempQueryTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerSelectWithTempQueryTest.cs @@ -59,6 +59,40 @@ WHERE (a.[rownum] = 1)"; Assert.Equal(list01[2].item.Nickname, "name03"); + var sql011 = fsql.Select() + .GroupBy(a => a.Nickname) + .WithTempQuery(g => new { min = g.Min(g.Value.Id) }) + .From() + .InnerJoin((a, b) => a.min == b.Id) + .ToSql((a, b) => new { item1 = a, item2 = b }); + var assertSql011 = @"SELECT a.[min] as1, b.[Id] as2, b.[Nickname] as3 +FROM ( + SELECT min(a.[Id]) [min] + FROM [SingleTablePartitionBy_User] a + GROUP BY a.[Nickname] ) a +INNER JOIN [SingleTablePartitionBy_User] b ON a.[min] = b.[Id]"; + Assert.Equal(assertSql011, sql011); + + var sel011 = fsql.Select() + .GroupBy(a => a.Nickname) + .WithTempQuery(g => new { min = g.Min(g.Value.Id) }) + .From() + .InnerJoin((a, b) => a.min == b.Id); + Assert.Equal(assertSql011, sel011.ToSql((a, b) => new { item1 = a, item2 = b })); + + var list011 = sel011.ToList((a, b) => new { item1 = a, item2 = b }); + Assert.Equal(3, list011.Count); + Assert.Equal(list011[0].item1.min, 1); + Assert.Equal(list011[0].item2.Id, 1); + Assert.Equal(list011[0].item2.Nickname, "name01"); + Assert.Equal(list011[1].item1.min, 4); + Assert.Equal(list011[1].item2.Id, 4); + Assert.Equal(list011[1].item2.Nickname, "name02"); + Assert.Equal(list011[2].item1.min, 5); + Assert.Equal(list011[2].item2.Id, 5); + Assert.Equal(list011[2].item2.Nickname, "name03"); + + var sql02 = fsql.Select() .WithTempQuery(a => new {