annotate UnitTests/Linq/ConvertExpression.cs @ 1:8f65451dc28f

Исправлена проблема с фабрикой и выборкой нескольких объектов в linq выражении
author cin
date Fri, 28 Mar 2014 01:04:56 +0400
parents f990fcb411a9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1 using System;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2 using System.Linq;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
4 using BLToolkit.Data.DataProvider;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
5
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
6 using NUnit.Framework;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
7
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
8 namespace Data.Linq
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
9 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
10 [TestFixture]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
11 public class ConvertExpression : TestBase
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
12 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
13 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
14 public void Select1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
15 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
16 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
17 from p in Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
18 let children = p.Children.Where(c => c.ParentID > 1)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
19 select children.Sum(c => c.ChildID),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
20 from p in db.Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
21 let children = p.Children.Where(c => c.ParentID > 1)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
22 select children.Sum(c => c.ChildID)));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
23 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
24
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
25 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
26 public void Select2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
27 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
28 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
29 from p in Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
30 let children1 = p.Children.Where(c => c.ParentID > 1)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
31 let children2 = children1.Where(c => c.ParentID < 10)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
32 select children2.Sum(c => c.ChildID),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
33 from p in db.Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
34 let children1 = p.Children.Where(c => c.ParentID > 1)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
35 let children2 = children1.Where(c => c.ParentID < 10)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
36 select children2.Sum(c => c.ChildID)));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
37 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
38
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
39 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
40 public void Select3()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
41 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
42 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
43 Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
44 .Select(p => new { children1 = p.Children. Where(c => c.ParentID > 1) })
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
45 .Select(t => new { children2 = t.children1.Where(c => c.ParentID < 10) })
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
46 .Select(t => t.children2.Sum(c => c.ChildID)),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
47 db.Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
48 .Select(p => new { children1 = p.Children. Where(c => c.ParentID > 1) })
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
49 .Select(t => new { children2 = t.children1.Where(c => c.ParentID < 10) })
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
50 .Select(t => t.children2.Sum(c => c.ChildID))));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
51 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
52
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
53 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
54 public void Select4()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
55 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
56 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
57 Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
58 .Select(p => p.Children. Where(c => c.ParentID > 1))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
59 .Select(t => t.Where(c => c.ParentID < 10))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
60 .Select(t => t.Sum(c => c.ChildID)),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
61 db.Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
62 .Select(p => p.Children. Where(c => c.ParentID > 1))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
63 .Select(t => t.Where(c => c.ParentID < 10))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
64 .Select(t => t.Sum(c => c.ChildID))));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
65 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
66
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
67 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
68 public void Where1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
69 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
70 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
71 from p in Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
72 let children1 = p.Children.Where(c => c.ParentID > 1)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
73 let children2 = children1.Where(c => c.ParentID < 10)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
74 where children1.Any()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
75 select children2.Sum(c => c.ChildID),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
76 from p in db.Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
77 let children1 = p.Children.Where(c => c.ParentID > 1)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
78 let children2 = children1.Where(c => c.ParentID < 10)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
79 where children1.Any()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
80 select children2.Sum(c => c.ChildID)));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
81 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
82
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
83 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
84 public void Where2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
85 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
86 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
87 from p in Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
88 let children1 = p.Children.Where(c => c.ParentID > 1)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
89 where children1.Any()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
90 let children2 = children1.Where(c => c.ParentID < 10)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
91 select children2.Sum(c => c.ChildID),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
92 from p in db.Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
93 let children1 = p.Children.Where(c => c.ParentID > 1)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
94 where children1.Any()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
95 let children2 = children1.Where(c => c.ParentID < 10)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
96 select children2.Sum(c => c.ChildID)));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
97 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
98
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
99 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
100 public void Where3()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
101 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
102 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
103 from p in Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
104 let children1 = p.Children.Where(c => c.ParentID > 1)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
105 let children2 = children1.Where(c => c.ParentID < 10)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
106 where children2.Any()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
107 select children2.Sum(c => c.ChildID),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
108 from p in db.Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
109 let children1 = p.Children.Where(c => c.ParentID > 1)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
110 let children2 = children1.Where(c => c.ParentID < 10)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
111 where children2.Any()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
112 select children2.Sum(c => c.ChildID)));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
113 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
114
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
115 //[Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
116 public void Where4()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
117 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
118 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
119 Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
120 .Select(p => new { p, children1 = p.Children. Where(c => c.ParentID > 1) })
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
121 .Where (t => t.children1.Any()),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
122 db.Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
123 .Select(p => new { p, children1 = p.Children. Where(c => c.ParentID > 1) })
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
124 .Where (t => t.children1.Any())));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
125 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
126
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
127 //[Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
128 public void Where5()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
129 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
130 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
131 Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
132 .Select(p => new { children1 = p.Children. Where(c => c.ParentID > 1) })
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
133 .Where (t => t.children1.Any()),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
134 db.Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
135 .Select(p => new { children1 = p.Children. Where(c => c.ParentID > 1) })
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
136 .Where (t => t.children1.Any())));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
137 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
138
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
139 //[Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
140 public void Where6()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
141 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
142 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
143 Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
144 .Select(p => p.Children. Where(c => c.ParentID > 1))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
145 .Where (t => t.Any()),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
146 db.Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
147 .Select(p => p.Children. Where(c => c.ParentID > 1))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
148 .Where (t => t.Any())));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
149 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
150
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
151 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
152 public void Any1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
153 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
154 ForEachProvider(db => Assert.AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
155 Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
156 .Select(p => new { p, children1 = p.Children.Where(c => c.ParentID > 1) })
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
157 .Any(p => p.children1.Any()),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
158 db.Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
159 .Select(p => new { p, children1 = p.Children.Where(c => c.ParentID > 1) })
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
160 .Any(p => p.children1.Any())));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
161 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
162
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
163 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
164 public void Any2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
165 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
166 ForEachProvider(db => Assert.AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
167 Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
168 .Select(p => p.Children.Where(c => c.ParentID > 1))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
169 .Any(p => p.Any()),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
170 db.Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
171 .Select(p => p.Children.Where(c => c.ParentID > 1))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
172 .Any(p => p.Any())));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
173 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
174
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
175 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
176 public void Any3()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
177 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
178 ForEachProvider(db => Assert.AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
179 Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
180 .Select(p => new { p, children1 = p.Children.Where(c => c.ParentID > 1) })
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
181 .Where(p => p.children1.Any())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
182 .Any(),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
183 db.Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
184 .Select(p => new { p, children1 = p.Children.Where(c => c.ParentID > 1) })
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
185 .Where(p => p.children1.Any())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
186 .Any()));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
187 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
188
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
189 //[Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
190 public void Any4()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
191 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
192 ForEachProvider(db => Assert.AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
193 Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
194 .Select(p => new { children1 = p.Children.Where(c => c.ParentID > 1) })
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
195 .Where(p => p.children1.Any())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
196 .Any(),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
197 db.Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
198 .Select(p => new { children1 = p.Children.Where(c => c.ParentID > 1) })
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
199 .Where(p => p.children1.Any())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
200 .Any()));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
201 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
202
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
203
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
204 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
205 public void LetTest1([DataContexts(ProviderName.SqlCe, ProviderName.Informix, ProviderName.Sybase)] string context)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
206 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
207 using (var db = GetDataContext(context))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
208 AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
209 from p in Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
210 let ch = p.Children
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
211 where ch.FirstOrDefault() != null
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
212 select ch.FirstOrDefault().ParentID
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
213 ,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
214 from p in db.Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
215 let ch = p.Children
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
216 where ch.FirstOrDefault() != null
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
217 select ch.FirstOrDefault().ParentID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
218 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
219
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
220 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
221 public void LetTest2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
222 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
223 ForEachProvider(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
224 new[] { ProviderName.SqlCe, ProviderName.Informix, ProviderName.Sybase },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
225 db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
226 from p in Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
227 let ch = p.Children
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
228 where ch.FirstOrDefault() != null
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
229 select p
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
230 ,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
231 from p in db.Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
232 let ch = p.Children
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
233 where ch.FirstOrDefault() != null
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
234 select p));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
235 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
236
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
237 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
238 public void LetTest3()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
239 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
240 ForEachProvider(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
241 new[] { ProviderName.Informix, ProviderName.Sybase },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
242 db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
243 from p in Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
244 let ch = Child
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
245 select ch.FirstOrDefault().ParentID
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
246 ,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
247 from p in db.Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
248 let ch = db.Child
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
249 select ch.FirstOrDefault().ParentID));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
250 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
251
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
252 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
253 public void LetTest4()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
254 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
255 BLToolkit.Common.Configuration.Linq.AllowMultipleQuery = true;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
256
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
257 ForEachProvider(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
258 new[] { ProviderName.Informix, ProviderName.Sybase },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
259 db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
260 from p in Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
261 let ch1 = Child.Where(c => c.ParentID == p.ParentID)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
262 let ch2 = ch1.Where(c => c.ChildID > -100)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
263 select new
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
264 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
265 Any = ch2.Any(),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
266 Count = ch2.Count(),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
267 First1 = ch2.FirstOrDefault(c => c.ParentID > 0),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
268 First2 = ch2.FirstOrDefault()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
269 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
270 ,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
271 from p in db.Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
272 let ch1 = db.Child.Where(c => c.ParentID == p.ParentID)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
273 let ch2 = ch1.Where(c => c.ChildID > -100)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
274 select new
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
275 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
276 Any = ch2.Any(),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
277 Count = ch2.Count(),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
278 First1 = ch2.FirstOrDefault(c => c.ParentID > 0),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
279 First2 = ch2.FirstOrDefault()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
280 }));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
281
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
282 BLToolkit.Common.Configuration.Linq.AllowMultipleQuery = false;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
283 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
284
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
285 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
286 public void LetTest5()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
287 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
288 BLToolkit.Common.Configuration.Linq.AllowMultipleQuery = true;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
289
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
290 ForEachProvider(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
291 new[] { ProviderName.Informix, ProviderName.Sybase },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
292 db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
293 from p in Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
294 let ch1 = Child.Where(c => c.ParentID == p.ParentID)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
295 let ch2 = ch1.Where(c => c.ChildID > -100)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
296 select new
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
297 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
298 Any = ch2.Any(),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
299 Count = ch2.Count(),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
300 First1 = ch2.FirstOrDefault(c => c.ParentID > 0) == null ? 0 : ch2.FirstOrDefault(c => c.ParentID > 0).ParentID,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
301 First2 = ch2.FirstOrDefault()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
302 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
303 ,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
304 from p in db.Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
305 let ch1 = db.Child.Where(c => c.ParentID == p.ParentID)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
306 let ch2 = ch1.Where(c => c.ChildID > -100)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
307 select new
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
308 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
309 Any = ch2.Any(),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
310 Count = ch2.Count(),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
311 First1 = ch2.FirstOrDefault(c => c.ParentID > 0).ParentID,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
312 First2 = ch2.FirstOrDefault()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
313 }));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
314
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
315 BLToolkit.Common.Configuration.Linq.AllowMultipleQuery = false;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
316 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
317
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
318 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
319 public void LetTest6()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
320 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
321 BLToolkit.Common.Configuration.Linq.AllowMultipleQuery = true;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
322 //BLToolkit.Common.Configuration.Linq.GenerateExpressionTest = true;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
323
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
324 ForEachProvider(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
325 new[] { ProviderName.Informix, ProviderName.Sybase },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
326 db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
327 (
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
328 from p in Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
329 let ch1 = Child.Where(c => c.ParentID == p.ParentID)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
330 let ch2 = ch1.Where(c => c.ChildID > -100)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
331 select new
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
332 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
333 p.ParentID,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
334 Any = ch2.Any(),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
335 Count = ch2.Count(),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
336 First1 = ch2.FirstOrDefault(c => c.ParentID > 0) == null ? 0 : ch2.FirstOrDefault(c => c.ParentID > 0).ParentID,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
337 First2 = ch2.FirstOrDefault()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
338 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
339 ).Where(t => t.ParentID > 0)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
340 ,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
341 (
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
342 from p in db.Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
343 let ch1 = db.Child.Where(c => c.ParentID == p.ParentID)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
344 let ch2 = ch1.Where(c => c.ChildID > -100)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
345 select new
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
346 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
347 p.ParentID,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
348 Any = ch2.Any(),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
349 Count = ch2.Count(),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
350 First1 = ch2.FirstOrDefault(c => c.ParentID > 0).ParentID,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
351 First2 = ch2.FirstOrDefault()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
352 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
353 ).Where(t => t.ParentID > 0)));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
354
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
355 BLToolkit.Common.Configuration.Linq.AllowMultipleQuery = false;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
356 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
357
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
358 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
359 public void LetTest7()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
360 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
361 BLToolkit.Common.Configuration.Linq.AllowMultipleQuery = true;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
362
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
363 ForEachProvider(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
364 new[] { ProviderName.Informix, ProviderName.Sybase },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
365 db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
366 (
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
367 from p in Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
368 let ch1 = Child.Where(c => c.ParentID == p.ParentID)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
369 let ch2 = ch1.Where(c => c.ChildID > -100)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
370 select new
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
371 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
372 p.ParentID,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
373 Any = ch2.Any(),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
374 Count = ch2.Count(),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
375 First1 = ch2.FirstOrDefault(c => c.ParentID > 0) == null ? 0 : ch2.FirstOrDefault(c => c.ParentID > 0).ParentID,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
376 First2 = ch2.FirstOrDefault()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
377 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
378 ).Where(t => t.ParentID > 0).Take(5000)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
379 ,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
380 (
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
381 from p in db.Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
382 let ch1 = db.Child.Where(c => c.ParentID == p.ParentID)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
383 let ch2 = ch1.Where(c => c.ChildID > -100)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
384 select new
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
385 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
386 p.ParentID,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
387 Any = ch2.Any(),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
388 Count = ch2.Count(),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
389 First1 = ch2.FirstOrDefault(c => c.ParentID > 0).ParentID,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
390 First2 = ch2.FirstOrDefault()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
391 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
392 ).Where(t => t.ParentID > 0).Take(5000)));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
393
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
394 BLToolkit.Common.Configuration.Linq.AllowMultipleQuery = false;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
395 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
396
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
397 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
398 public void LetTest8()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
399 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
400 BLToolkit.Common.Configuration.Linq.AllowMultipleQuery = true;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
401
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
402 ForEachProvider(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
403 db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
404 from p in Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
405 let ch1 = Child.Where(c => c.ParentID == p.ParentID)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
406 let ch2 = ch1.Where(c => c.ChildID > -100)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
407 let ch3 = ch2.FirstOrDefault(c => c.ParentID > 0)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
408 select new
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
409 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
410 First1 = ch3 == null ? 0 : ch3.ParentID,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
411 Any = ch2.Any(),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
412 Count = ch2.Count(),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
413 First2 = ch2.FirstOrDefault()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
414 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
415 ,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
416 from p in db.Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
417 let ch1 = db.Child.Where(c => c.ParentID == p.ParentID)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
418 let ch2 = ch1.Where(c => c.ChildID > -100)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
419 let ch3 = ch2.FirstOrDefault(c => c.ParentID > 0)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
420 select new
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
421 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
422 First1 = ch3 == null ? 0 : ch3.ParentID,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
423 Any = ch2.Any(),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
424 Count = ch2.Count(),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
425 First2 = ch2.FirstOrDefault()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
426 }));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
427
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
428 BLToolkit.Common.Configuration.Linq.AllowMultipleQuery = false;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
429 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
430
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
431 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
432 public void LetTest9()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
433 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
434 BLToolkit.Common.Configuration.Linq.AllowMultipleQuery = true;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
435
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
436 ForEachProvider(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
437 db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
438 (
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
439 from p in Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
440 let ch1 = Child.Where(c => c.ParentID == p.ParentID)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
441 select new
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
442 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
443 First = ch1.FirstOrDefault()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
444 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
445 ).Take(10)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
446 ,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
447 (
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
448 from p in db.Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
449 let ch1 = db.Child.Where(c => c.ParentID == p.ParentID)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
450 select new
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
451 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
452 First = ch1.FirstOrDefault()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
453 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
454 ).Take(10)));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
455
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
456 BLToolkit.Common.Configuration.Linq.AllowMultipleQuery = false;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
457 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
458
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
459 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
460 public void LetTest10()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
461 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
462 BLToolkit.Common.Configuration.Linq.AllowMultipleQuery = true;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
463
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
464 ForEachProvider(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
465 db => Assert.AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
466 (
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
467 from p in Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
468 let ch1 = Child.Where(c => c.ParentID == p.ParentID)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
469 select new
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
470 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
471 First = ch1.FirstOrDefault()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
472 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
473 ).Any()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
474 ,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
475 (
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
476 from p in db.Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
477 let ch1 = db.Child.Where(c => c.ParentID == p.ParentID)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
478 select new
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
479 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
480 First = ch1.FirstOrDefault()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
481 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
482 ).Any()));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
483
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
484 BLToolkit.Common.Configuration.Linq.AllowMultipleQuery = false;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
485 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
486
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
487 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
488 public void LetTest11([DataContexts] string context)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
489 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
490 BLToolkit.Common.Configuration.Linq.AllowMultipleQuery = true;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
491
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
492 using (var db = GetDataContext(context))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
493 AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
494 from p in Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
495 let ch1 = Child.FirstOrDefault(c => c.ParentID > 0)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
496 let ch2 = Child.Where(c => c.ChildID > -100)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
497 select new
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
498 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
499 First1 = ch1 == null ? 0 : ch1.ParentID,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
500 First2 = ch2.FirstOrDefault()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
501 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
502 ,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
503 from p in db.Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
504 let ch1 = db.Child.FirstOrDefault(c => c.ParentID > 0)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
505 let ch2 = Child.Where(c => c.ChildID > -100)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
506 select new
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
507 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
508 First1 = ch1 == null ? 0 : ch1.ParentID,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
509 First2 = ch2.FirstOrDefault()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
510 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
511
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
512 BLToolkit.Common.Configuration.Linq.AllowMultipleQuery = false;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
513 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
514 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
515 }