2 using System.Collections.Generic;
\r
6 using NUnit.Framework;
\r
7 using Test_NUnit.Linq_101_Samples;
\r
13 namespace Test_NUnit_MySql
\r
15 namespace Test_NUnit_OracleODP
\r
17 namespace Test_NUnit_Oracle
\r
19 namespace Test_NUnit_PostgreSql
\r
21 namespace Test_NUnit_Sqlite
\r
23 namespace Test_NUnit_Ingres
\r
24 #elif MSSQL && L2SQL
\r
25 namespace Test_NUnit_MsSql_Strict
\r
27 namespace Test_NUnit_MsSql
\r
29 namespace Test_NUnit_Firebird
\r
33 public class AnyCount : TestBase
\r
36 public void AnyInternal01()
\r
38 Northwind db = CreateDB();
\r
40 var q = from c in db.Customers
\r
41 where !c.Orders.Any()
\r
44 var list = q.ToList();
\r
45 Assert.IsTrue(list.Count > 0);
\r
49 public void AnyInternal02()
\r
51 Northwind db = CreateDB();
\r
53 var q = from c in db.Customers
\r
54 where !c.Orders.Any(o => o.Customer.ContactName == "WARTH")
\r
57 var list = q.ToList();
\r
58 Assert.IsTrue(list.Count > 0);
\r
61 #if !DEBUG && POSTGRES
\r
65 public void AnyInternal03()
\r
67 Northwind db = CreateDB();
\r
69 var q = (from c in db.Customers
\r
70 where !c.Orders.Where(o => o.Customer.ContactName == "WARTH")
\r
71 .Any(o => o.Customer.Country == "USA")
\r
76 public void AnyInternal04()
\r
78 Northwind db = CreateDB();
\r
80 var q = (from c in db.Customers
\r
81 where !c.Orders.Select(o => o.Customer.Country)
\r
82 .Any(ct => ct == "USA")
\r
87 public void AnyInternal05()
\r
89 Northwind db = CreateDB();
\r
91 var q = (from c in db.Customers
\r
92 select new { c.CustomerID, HasUSAOrders = c.Orders.Any(o => o.ShipCountry == "USA") }).ToList();
\r
97 public void AnyExternal01()
\r
99 Northwind db = CreateDB();
\r
101 var q = (from c in db.Customers
\r
102 where c.Country == "USA"
\r
108 public void AnyExternal02()
\r
110 Northwind db = CreateDB();
\r
112 var q = (from c in db.Customers
\r
113 where c.Country == "USA"
\r
114 select c).Any(cust => cust.City == "Seatle");
\r
118 public void AnyExternal03()
\r
120 Northwind db = CreateDB();
\r
121 var q = db.Customers.Any();
\r
125 public void AnyExternal04()
\r
127 Northwind db = CreateDB();
\r
128 var q = db.Customers.Any(cust => cust.City == "Seatle");
\r
133 public void CountInternal01()
\r
135 Northwind db = CreateDB();
\r
137 var q = from c in db.Customers
\r
138 where c.Orders.Count() % 2 == 0
\r
141 var list = q.ToList();
\r
142 Assert.IsTrue(list.Count > 0);
\r
146 public void CountInternal02()
\r
148 Northwind db = CreateDB();
\r
150 var q = from c in db.Customers
\r
151 where c.Orders.Count(o => o.Customer.ContactName == "WARTH") % 2 == 0
\r
154 var list = q.ToList();
\r
155 Assert.IsTrue(list.Count > 0);
\r
158 #if !DEBUG && POSTGRES
\r
162 public void CountInternal03()
\r
164 Northwind db = CreateDB();
\r
166 var q = (from c in db.Customers
\r
167 where c.Orders.Where(o => o.Customer.ContactName == "WARTH")
\r
168 .Count(o => o.Customer.Country == "USA") % 2 == 0
\r
169 select c).ToList();
\r
173 public void CountInternal04()
\r
175 Northwind db = CreateDB();
\r
177 var q = (from c in db.Customers
\r
178 where c.Orders.Select(o => o.Customer.Country)
\r
179 .Count(ct => ct == "USA") % 2 == 0
\r
180 select c).ToList();
\r
185 public void CountExternal01()
\r
187 Northwind db = CreateDB();
\r
189 var q = (from c in db.Customers
\r
190 where c.Country == "USA"
\r
195 public void CountExternal02()
\r
197 Northwind db = CreateDB();
\r
199 var q = (from c in db.Customers
\r
200 where c.Country == "USA"
\r
201 select c).Count(cust => cust.City == "Seatle");
\r
205 public void CountExternal03()
\r
207 Northwind db = CreateDB();
\r
208 var q = db.Customers.Count();
\r
212 public void CountExternal04()
\r
214 Northwind db = CreateDB();
\r
215 var q = db.Customers.Count(cust => cust.City == "Seatle");
\r
219 public void CountInternal05()
\r
221 Northwind db = CreateDB();
\r
223 var q = (from c in db.Customers
\r
224 select new { c.CustomerID, HasUSAOrders = c.Orders.Count(o => o.ShipCountry == "USA") }).ToList();
\r
227 #if !DEBUG && (SQLITE || (MSSQL && !L2SQL))
\r
231 public void FirstInternal01()
\r
233 Northwind db = CreateDB();
\r
235 var q = from c in db.Customers
\r
236 where c.Orders.FirstOrDefault() != null
\r
239 var list = q.ToList();
\r
240 Assert.IsTrue(list.Count > 0);
\r
243 #if !DEBUG && (SQLITE || (MSSQL && !L2SQL))
\r
247 public void FirstInternal02()
\r
249 Northwind db = CreateDB();
\r
251 var q = from c in db.Customers
\r
252 where c.Orders.FirstOrDefault(o => o.Customer.ContactName == "WARTH") != null
\r
255 var list = q.ToList();
\r
258 #if !DEBUG && (SQLITE || POSTGRES || (MSSQL && !L2SQL))
\r
262 public void FirstInternal03()
\r
264 Northwind db = CreateDB();
\r
266 var q = (from c in db.Customers
\r
267 where c.Orders.Where(o => o.Customer.ContactName == "WARTH")
\r
268 .FirstOrDefault(o => o.Customer.Country == "USA") != null
\r
269 select c).ToList();
\r
273 public void FirstInternal04()
\r
275 Northwind db = CreateDB();
\r
277 var q = (from c in db.Customers
\r
278 where c.Orders.Select(o => o.Customer.Country)
\r
279 .FirstOrDefault(ct => ct == "USA") != null
\r
280 select c).ToList();
\r
284 public void FirstExternal01()
\r
286 Northwind db = CreateDB();
\r
288 var q = (from c in db.Customers
\r
289 where c.Country == "USA"
\r
294 public void FirstExternal02()
\r
296 Northwind db = CreateDB();
\r
298 var q = (from c in db.Customers
\r
299 where c.Country == "France"
\r
300 select c).First(cust => cust.City == "Marseille");
\r
305 public void FirstExternal03()
\r
307 Northwind db = CreateDB();
\r
308 var q = db.Customers.First();
\r
312 public void FirstExternal04()
\r
314 Northwind db = CreateDB();
\r
315 var q = db.Customers.First(cust => cust.City == "Marseille");
\r
319 public void FirstInternal05()
\r
321 Northwind db = CreateDB();
\r
323 var q = (from c in db.Customers
\r
324 select new { c.CustomerID, FirstUSAOrder = c.Orders.First(o => o.ShipCountry == "France") }).ToList();
\r
328 public void ArrayContains()
\r
330 var db = CreateDB();
\r
331 decimal[] d = new decimal[] { 1, 4, 5, 6, 10248, 10255 };
\r
332 var q = db.OrderDetails.Where(o => d.Contains(o.OrderID));
\r
334 Assert.Greater(q.Count(), 0);
\r
339 public void ArrayContains_QueryParserCacheHit()
\r
341 var db = CreateDB();
\r
342 decimal[] d = new decimal[] { 1, 4, 5, 6, 10248, 10255 };
\r
343 var q = db.OrderDetails.Where(o => d.Contains(o.OrderID));
\r
344 string query1 = db.GetCommand(q).CommandText;
\r
345 d = new decimal[] { 1, 4, 5, 6, 7, 8 };
\r
346 q = db.OrderDetails.Where(o => d.Contains(o.OrderID));
\r
347 string query2 = db.GetCommand(q).CommandText;
\r
348 Assert.AreEqual(query1, query2);
\r