From 5b33e2d0629a9068f2da1f04b744a5e0b25bec70 Mon Sep 17 00:00:00 2001 From: 28810 <28810@YEXIANGQIN> Date: Sat, 21 Dec 2019 20:31:08 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E5=85=BC=E5=AE=B9=20Vb.Net=20=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E4=BD=BF=E7=94=A8=20IncludeMany=20=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98=EF=BC=9B#140?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FreeSql.Tests.VB/UnitTest1.vb | 37 +++++++++++++++++-- FreeSql.Tests.VB/g.vb | 2 +- .../SelectProvider/Select1Provider.cs | 1 + 3 files changed, 35 insertions(+), 5 deletions(-) diff --git a/FreeSql.Tests.VB/UnitTest1.vb b/FreeSql.Tests.VB/UnitTest1.vb index 2a233711..07d82b23 100644 --- a/FreeSql.Tests.VB/UnitTest1.vb +++ b/FreeSql.Tests.VB/UnitTest1.vb @@ -7,13 +7,33 @@ Namespace FreeSql.Tests.VB Sub TestSub() REM VB.net 表达式解析兼容性测试 + Dim id As Integer = 100 Dim List1 = g.sqlserver.Select(Of Testvb).Where(Function(a) a.Id = 100).ToList() - Dim List2 = g.sqlserver.Select(Of Testvb).Where(Function(a) a.Title = "xxx").ToList() - Dim List3 = g.sqlserver.Select(Of Testvb).Where(Function(a) a.Title <> "xxx").ToList() + Dim List2 = g.sqlserver.Select(Of Testvb).Where(Function(a) a.Id = id).ToList() + Dim List3 = g.sqlserver.Select(Of Testvb).Where(Function(a) a.Title = "xxx").ToList() + Dim title As String = "xxx" + Dim List4 = g.sqlserver.Select(Of Testvb).Where(Function(a) a.Title = title).ToList() + Dim List5 = g.sqlserver.Select(Of Testvb).Where(Function(a) a.Title <> "xxx").ToList() + Dim List6 = g.sqlserver.Select(Of Testvb).Where(Function(a) a.Title <> title).ToList() - Dim List4 = g.sqlserver.Select(Of Testvb).ToList(Function(a) New With {a, a.Id, a.Title}) + Dim List7 = g.sqlserver.Select(Of Testvb).ToList(Function(a) New With {a, a.Id, a.Title}) + Dim List8 = g.sqlserver.Select(Of Testvb).Where(Function(a) a.IsDeleted).ToList() + + + g.sqlserver.Delete(Of Testvb2).Where("1=1").ExecuteAffrows() + g.sqlserver.Delete(Of Testvb).Where("1=1").ExecuteAffrows() + g.sqlserver.Insert(New Testvb With {.Id = 1, .Title = "title1"}).ExecuteAffrows() + g.sqlserver.Insert(New Testvb With {.Id = 2, .Title = "title2"}).ExecuteAffrows() + g.sqlserver.Insert(New Testvb With {.Id = 3, .Title = "title3"}).ExecuteAffrows() + g.sqlserver.Insert(New Testvb2 With {.Id = 1, .TestvbId = 1, .Context = "Context11"}).ExecuteAffrows() + g.sqlserver.Insert(New Testvb2 With {.Id = 2, .TestvbId = 1, .Context = "Context12"}).ExecuteAffrows() + g.sqlserver.Insert(New Testvb2 With {.Id = 3, .TestvbId = 1, .Context = "Context13"}).ExecuteAffrows() + g.sqlserver.Insert(New Testvb2 With {.Id = 4, .TestvbId = 2, .Context = "Context21"}).ExecuteAffrows() + g.sqlserver.Insert(New Testvb2 With {.Id = 5, .TestvbId = 2, .Context = "Context22"}).ExecuteAffrows() + g.sqlserver.Insert(New Testvb2 With {.Id = 6, .TestvbId = 3, .Context = "Context31"}).ExecuteAffrows() + + Dim List9 = g.sqlserver.Select(Of Testvb).IncludeMany(Function(a) a.Testvb2s).ToList() - Dim List5 = g.sqlserver.Select(Of Testvb).Where(Function(a) a.IsDeleted).ToList() End Sub End Class @@ -23,4 +43,13 @@ Class Testvb Property Id As Integer Property Title As String Property IsDeleted As Boolean + + Property Testvb2s As List(Of Testvb2) End Class + +Class Testvb2 + Property Id As Integer + Property TestvbId As Integer + Property Testvb As Testvb + Property Context As String +End Class \ No newline at end of file diff --git a/FreeSql.Tests.VB/g.vb b/FreeSql.Tests.VB/g.vb index 7a83db79..da9cc3a1 100644 --- a/FreeSql.Tests.VB/g.vb +++ b/FreeSql.Tests.VB/g.vb @@ -5,7 +5,7 @@ Public Class g Shared sqlserverLazy As Lazy(Of IFreeSql) = New Lazy(Of IFreeSql)(New Func(Of IFreeSql)(Function() New FreeSqlBuilder() _ .UseConnectionString(DataType.SqlServer, "Data Source=.;Integrated Security=True;Initial Catalog=freesqlTest;Pooling=true;Max Pool Size=3") _ .UseAutoSyncStructure(True) _ - .UseMonitorCommand(Sub(cmd) Trace.WriteLine("\r\n绾跨▼" & Thread.CurrentThread.ManagedThreadId & ": " & cmd.CommandText)) _ + .UseMonitorCommand(Sub(cmd) Trace.WriteLine(vbCrLf & "绾跨▼" & Thread.CurrentThread.ManagedThreadId & ": " & cmd.CommandText)) _ .UseLazyLoading(True) _ .Build())) diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select1Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select1Provider.cs index 0187fd1b..cfcffed9 100644 --- a/FreeSql/Internal/CommonProvider/SelectProvider/Select1Provider.cs +++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select1Provider.cs @@ -386,6 +386,7 @@ namespace FreeSql.Internal.CommonProvider var expBody = navigateSelector?.Body; if (expBody == null) return this; + if (expBody.NodeType == ExpressionType.Convert) expBody = (expBody as UnaryExpression)?.Operand; MethodCallExpression whereExp = null; int takeNumber = 0; Expression> selectExp = null;