mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-22 10:42:52 +08:00
- 兼容 Vb.Net 无法使用 IncludeMany 的问题;#140
This commit is contained in:
parent
f5128f3308
commit
5b33e2d062
@ -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
|
@ -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()))
|
||||
|
||||
|
@ -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<Func<TNavigate, TNavigate>> selectExp = null;
|
||||
|
Loading…
x
Reference in New Issue
Block a user