/
LinqQueriesUsingVB.vb
123 lines (81 loc) · 3.88 KB
/
LinqQueriesUsingVB.vb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
Imports Raven.Abstractions.Indexing
Imports Raven.Client.Embedded
Imports Raven.Client.Indexes
Imports Raven.Tests
Imports Xunit
Imports Raven.Client.Linq
Public Class LinqQueriesUsingVB
Inherits LocalClientTest
<Fact()> _
Public Sub CanUseWhereEntityIs()
Using store As EmbeddableDocumentStore = NewDocumentStore()
Dim x = New Data_NewIndex()
x.Execute(store.DatabaseCommands, store.Conventions)
End Using
End Sub
<Fact()> _
Public Sub CanUseSelectMany_WithFixedParameter()
Using store As EmbeddableDocumentStore = NewDocumentStore()
store.DatabaseCommands.PutIndex("test", New IndexDefinitionBuilder(Of PortalPageSettings)() With
{ _
.Map = Function(pages) From page In pages _
From IdxMod In page.Zones("Left").Modules _
Select New With {IdxMod.ModuleId}
}.ToIndexDefinition(store.Conventions))
End Using
End Sub
<Fact()> _
Public Sub CanQueryUsingStringProperty()
Using store = NewDocumentStore()
Using session = store.OpenSession()
session.Query(Of PortalPageSettings)().Where(Function(x) x.Name = "ayende").FirstOrDefault()
Dim query = session.Query(Of PortalPageSettings)().Where(Function(x) x.Name = "ayende").ToString()
Assert.Equal("Name:ayende", query)
Dim user = "rahien"
query = session.Query(Of PortalPageSettings)().Where(Function(x) x.Name = user).ToString()
user = "oren"
Assert.Equal("Name:rahien", query)
query = session.Query(Of PortalPageSettings)().Where(Function(x) x.Name = user).ToString()
Assert.Equal("Name:oren", query)
End Using
End Using
End Sub
<Fact()> _
Public Sub CanUseWithEntityIsExtensionMethod()
Using store As EmbeddableDocumentStore = NewDocumentStore()
Dim index As New IndexDefinitionBuilder(Of Object)() With
{ _
.Map = Function(pages) From page In pages.WhereEntityIs(Of PortalPageSettings)("Ayende", "Rahien") _
From IdxMod In page.Zones("Left").Modules _
Select New With {IdxMod.ModuleId}
}
store.DatabaseCommands.PutIndex("test", index.ToIndexDefinition(store.Conventions))
End Using
End Sub
<Fact()> _
Public Sub EntityIsExtensionMethodWillBeTranslatedProperly()
Using store As EmbeddableDocumentStore = NewDocumentStore()
Dim index As New IndexDefinitionBuilder(Of Object)() With
{ _
.Map = Function(pages) From page In pages.WhereEntityIs(Of PortalPageSettings)("Ayende", "Rahien") _
From IdxMod In page.Zones("Left").Modules _
Select New With {IdxMod.ModuleId}
}
Dim result = index.ToIndexDefinition(store.Conventions)
Assert.Equal("docs.WhereEntityIs(new System.String []{""Ayende"", ""Rahien""})" & vbCrLf & _
" .SelectMany(page => (page.Zones[""Left""].Modules), (page, IdxMod) => new {ModuleId = IdxMod.ModuleId})", result.Map)
End Using
End Sub
<Fact()> _
Public Sub CanUseSelectMany_WithVaraible()
Using store As EmbeddableDocumentStore = NewDocumentStore()
store.DatabaseCommands.PutIndex("test", New IndexDefinitionBuilder(Of PortalPageSettings)() With
{ _
.Map = Function(pages) From page In pages _
From PaneName In page.Zones.Keys _
From IdxMod In page.Zones(PaneName).Modules _
Select New With {IdxMod.ModuleId}
}.ToIndexDefinition(store.Conventions))
End Using
End Sub
End Class