annotate UnitTests/Linq/Types.cs @ 5:f7d63a092920

Исправлено условие Where в тех случаях, когда репозитарий не является генериком
author cin
date Tue, 10 Mar 2015 16:02:11 +0300
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.Collections.Generic;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3 using System.Data.Linq;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
4 using System.Globalization;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
5 using System.Linq;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
6 using System.Linq.Expressions;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
7 using System.Threading;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
8
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
9 using BLToolkit.Data.DataProvider;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
10 using BLToolkit.Data.Linq;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
11 using BLToolkit.DataAccess;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
12 using BLToolkit.Mapping;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
13
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
14 using NUnit.Framework;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
15
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
16 namespace Data.Linq
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
17 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
18 using Model;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
19
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
20 [TestFixture]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
21 public class Types : TestBase
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
22 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
23 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
24 public void Bool1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
25 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
26 var value = true;
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 where p.ParentID > 2 && value && true && !false select p,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
30 from p in db.Parent where p.ParentID > 2 && value && true && !false select p));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
31 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
32
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
33 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
34 public void Bool2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
35 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
36 var value = true;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
37
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
38 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
39 from p in Parent where p.ParentID > 2 && value || true && !false select p,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
40 from p in db.Parent where p.ParentID > 2 && value || true && !false select p));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
41 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
42
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
43 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
44 public void Bool3()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
45 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
46 var values = new int[0];
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
47
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
48 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
49 from p in Parent where values.Contains(p.ParentID) && !false || p.ParentID > 2 select p,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
50 from p in db.Parent where values.Contains(p.ParentID) && !false || p.ParentID > 2 select p));
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 BoolField1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
55 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
56 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
57 from t in Types where t.BoolValue select t.MoneyValue,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
58 from t in db.Types where t.BoolValue select t.MoneyValue));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
59 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
60
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
61 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
62 public void BoolField2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
63 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
64 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
65 from t in Types where !t.BoolValue select t.MoneyValue,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
66 from t in db.Types where !t.BoolValue select t.MoneyValue));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
67 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
68
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
69 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
70 public void BoolField3()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
71 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
72 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
73 from t in Types where t.BoolValue == true select t.MoneyValue,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
74 from t in db.Types where t.BoolValue == true select t.MoneyValue));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
75 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
76
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
77 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
78 public void BoolField4()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
79 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
80 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
81 from t in Types where t.BoolValue == false select t.MoneyValue,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
82 from t in db.Types where t.BoolValue == false select t.MoneyValue));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
83 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
84
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
85 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
86 public void BoolField5()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
87 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
88 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
89 from p in from t in Types select new { t.MoneyValue, b = !t.BoolValue } where p.b == false select p.MoneyValue,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
90 from p in from t in db.Types select new { t.MoneyValue, b = !t.BoolValue } where p.b == false select p.MoneyValue));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
91 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
92
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
93 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
94 public void BoolField6()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
95 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
96 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
97 from p in from t in Types select new { t.MoneyValue, b = !t.BoolValue } where p.b select p.MoneyValue,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
98 from p in from t in db.Types select new { t.MoneyValue, b = !t.BoolValue } where p.b select p.MoneyValue));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
99 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
100
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
101 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
102 public void BoolResult1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
103 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
104 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
105 from p in Person select new { p.Patient, IsPatient = p.Patient != null },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
106 from p in db.Person select new { p.Patient, IsPatient = p.Patient != null }));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
107 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
108
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
109 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
110 public void BoolResult2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
111 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
112 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
113 from p in Person select new { IsPatient = Sql.AsSql(p.Patient != null) },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
114 from p in db.Person select new { IsPatient = Sql.AsSql(p.Patient != null) }));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
115 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
116
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
117 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
118 public void BoolResult3()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
119 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
120 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
121 from p in Person select Sql.AsSql(p.ID == 1),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
122 from p in db.Person select Sql.AsSql(p.ID == 1)));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
123 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
124
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
125 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
126 public void GuidNew()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
127 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
128 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
129 from p in Types where p.GuidValue != Guid.NewGuid() select p.GuidValue,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
130 from p in db.Types where p.GuidValue != Guid.NewGuid() select p.GuidValue));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
131 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
132
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
133 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
134 public void Guid1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
135 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
136 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
137 from p in Types where p.GuidValue == new Guid("D2F970C0-35AC-4987-9CD5-5BADB1757436") select p.GuidValue,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
138 from p in db.Types where p.GuidValue == new Guid("D2F970C0-35AC-4987-9CD5-5BADB1757436") select p.GuidValue));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
139 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
140
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
141 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
142 public void Guid2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
143 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
144 var guid3 = new Guid("D2F970C0-35AC-4987-9CD5-5BADB1757436");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
145 var guid4 = new Guid("40932fdb-1543-4e4a-ac2c-ca371604fb4b");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
146
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
147 var parm = Expression.Parameter(typeof(LinqDataTypes), "p");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
148
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
149 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
150 Assert.AreNotEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
151 db.Types
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
152 .Where(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
153 Expression.Lambda<Func<LinqDataTypes,bool>>(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
154 Expression.Equal(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
155 Expression.PropertyOrField(parm, "GuidValue"),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
156 Expression.Constant(guid3),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
157 false,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
158 typeof(Guid).GetMethod("op_Equality")),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
159 new[] { parm }))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
160 .Single().GuidValue,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
161 db.Types
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
162 .Where(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
163 Expression.Lambda<Func<LinqDataTypes,bool>>(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
164 Expression.Equal(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
165 Expression.PropertyOrField(parm, "GuidValue"),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
166 Expression.Constant(guid4),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
167 false,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
168 typeof(Guid).GetMethod("op_Equality")),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
169 new[] { parm }))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
170 .Single().GuidValue)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
171 );
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
172 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
173
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
174 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
175 public void ContainsGuid()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
176 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
177 var ids = new [] { new Guid("D2F970C0-35AC-4987-9CD5-5BADB1757436") };
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
178
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
179 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
180 from p in Types where ids.Contains(p.GuidValue) select p.GuidValue,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
181 from p in db.Types where ids.Contains(p.GuidValue) select p.GuidValue));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
182 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
183
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
184 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
185 public void NewGuid()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
186 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
187 ForEachProvider(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
188 new[] { ProviderName.DB2, ProviderName.Informix, ProviderName.Firebird, ProviderName.PostgreSQL, ProviderName.SQLite, ProviderName.Access },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
189 db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
190 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
191 db.Types.Delete(_ => _.ID > 1000);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
192 db.Types.Insert(() => new LinqDataTypes
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
193 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
194 ID = 1001,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
195 MoneyValue = 1001,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
196 DateTimeValue = Sql.CurrentTimestamp,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
197 BoolValue = true,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
198 GuidValue = Sql.NewGuid(),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
199 BinaryValue = new Binary(new byte[] { 1 }),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
200 SmallIntValue = 1001
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
201 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
202
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
203 var guid = db.Types.Single(_ => _.ID == 1001).GuidValue;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
204
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
205 Assert.AreEqual(1001, db.Types.Single(_ => _.GuidValue == guid).ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
206
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
207 db.Types.Delete(_ => _.ID > 1000);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
208 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
209 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
210
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
211 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
212 public void BinaryLength()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
213 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
214 ForEachProvider(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
215 new[] { ProviderName.Access },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
216 db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
217 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
218 db.Types
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
219 .Where(t => t.ID == 1)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
220 .Set(t => t.BinaryValue, new Binary(new byte[] { 1, 2, 3, 4, 5 }))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
221 .Update();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
222
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
223 Assert.That(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
224 (from t in db.Types where t.ID == 1 select t.BinaryValue.Length).First(),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
225 Is.EqualTo(5));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
226
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
227 db.Types
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
228 .Where(t => t.ID == 1)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
229 .Set(t => t.BinaryValue, (Binary)null)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
230 .Update();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
231 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
232 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
233
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
234 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
235 public void InsertBinary1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
236 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
237 ForEachProvider(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
238 new[] { ProviderName.DB2, ProviderName.Informix, ProviderName.Firebird, ProviderName.PostgreSQL, ProviderName.SQLite, ProviderName.Access },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
239 db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
240 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
241 Binary data = null;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
242
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
243 db.Types.Delete(_ => _.ID > 1000);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
244 db.Types.Insert(() => new LinqDataTypes
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
245 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
246 ID = 1001,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
247 BinaryValue = data,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
248 BoolValue = true,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
249 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
250 db.Types.Delete(_ => _.ID > 1000);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
251 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
252 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
253
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
254 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
255 public void UpdateBinary1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
256 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
257 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
258 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
259 db.Types
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
260 .Where(t => t.ID == 1)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
261 .Set(t => t.BinaryValue, new Binary(new byte[] { 1, 2, 3, 4, 5 }))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
262 .Update();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
263
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
264 var g = from t in db.Types where t.ID == 1 select t.BinaryValue;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
265
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
266 foreach (var binary in g)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
267 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
268 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
269 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
270 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
271
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
272 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
273 public void UpdateBinary2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
274 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
275 ForEachProvider(new[] { ProviderName.SqlCe }, db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
276 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
277 var ints = new[] { 1, 2 };
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
278 var binaries = new[] { new byte[] { 1, 2, 3, 4, 5 }, new byte[] { 5, 4, 3, 2, 1 } };
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
279
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
280 for (var i = 1; i <= 2; i++)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
281 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
282 db.Types
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
283 .Where(t => t.ID == ints[i - 1])
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
284 .Set(t => t.BinaryValue, binaries[i - 1])
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
285 .Update();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
286 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
287
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
288 var g = from t in db.Types where new[] { 1, 2 }.Contains(t.ID) select t;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
289
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
290 foreach (var binary in g)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
291 Assert.AreEqual(binaries[binary.ID - 1], binary.BinaryValue.ToArray());
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
292 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
293 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
294
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
295 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
296 public void DateTime1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
297 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
298 var dt = Types2[3].DateTimeValue;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
299
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
300 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
301 from t in Types2 where t.DateTimeValue.Value.Date > dt.Value.Date select t,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
302 from t in db.Types2 where t.DateTimeValue.Value.Date > dt.Value.Date select t));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
303 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
304
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
305 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
306 public void DateTime21([DataContexts(ProviderName.SQLite)] string context)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
307 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
308 using (var db = GetDataContext(context))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
309 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
310 var pdt = db.Types2.First(t => t.ID == 1).DateTimeValue;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
311 var dt = DateTime.Parse("2010-12-14T05:00:07.4250141Z");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
312
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
313 db.Types2.Update(t => t.ID == 1, t => new LinqDataTypes2 { DateTimeValue = dt });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
314
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
315 var dt2 = db.Types2.First(t => t.ID == 1).DateTimeValue;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
316
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
317 db.Types2.Update(t => t.ID == 1, t => new LinqDataTypes2 { DateTimeValue = pdt });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
318
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
319 Assert.AreNotEqual(dt.Ticks, dt2.Value.Ticks);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
320 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
321 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
322
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
323 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
324 public void DateTime22()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
325 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
326 ForEachProvider(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
327 new[]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
328 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
329 ProviderName.SqlCe, ProviderName.Access, "Sql2000", "Sql2005", ProviderName.DB2, ProviderName.Informix,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
330 ProviderName.Firebird, "Oracle", "DevartOracle", ProviderName.PostgreSQL, ProviderName.MySql, ProviderName.Sybase
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
331 },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
332 db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
333 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
334 var pdt = db.Types2.First(t => t.ID == 1).DateTimeValue2;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
335 var dt = DateTime.Parse("2010-12-14T05:00:07.4250141Z");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
336
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
337 db.Types2.Update(t => t.ID == 1, t => new LinqDataTypes2 { DateTimeValue2 = dt });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
338
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
339 var dt2 = db.Types2.First(t => t.ID == 1).DateTimeValue2;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
340
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
341 db.Types2.Update(t => t.ID == 1, t => new LinqDataTypes2 { DateTimeValue2 = pdt });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
342
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
343 Assert.AreEqual(dt, dt2);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
344 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
345 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
346
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
347 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
348 public void DateTime23()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
349 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
350 ForEachProvider(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
351 new[]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
352 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
353 ProviderName.SqlCe, ProviderName.Access, "Sql2000", "Sql2005", ProviderName.DB2, ProviderName.Informix,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
354 ProviderName.Firebird, "Oracle", "DevartOracle", ProviderName.PostgreSQL, ProviderName.MySql, ProviderName.Sybase
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
355 },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
356 db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
357 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
358 var pdt = db.Types2.First(t => t.ID == 1).DateTimeValue2;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
359 var dt = DateTime.Parse("2010-12-14T05:00:07.4250141Z");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
360
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
361 db.Types2
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
362 .Where(t => t.ID == 1)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
363 .Set (_ => _.DateTimeValue2, dt)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
364 .Update();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
365
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
366 var dt2 = db.Types2.First(t => t.ID == 1).DateTimeValue2;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
367
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
368 db.Types2.Update(t => t.ID == 1, t => new LinqDataTypes2 { DateTimeValue2 = pdt });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
369
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
370 Assert.AreEqual(dt, dt2);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
371 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
372 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
373
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
374 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
375 public void DateTime24()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
376 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
377 ForEachProvider(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
378 new[]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
379 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
380 ProviderName.SqlCe, ProviderName.Access, "Sql2000", "Sql2005", ProviderName.DB2, ProviderName.Informix,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
381 ProviderName.Firebird, "Oracle", "DevartOracle", ProviderName.PostgreSQL, ProviderName.MySql, ProviderName.Sybase
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
382 },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
383 db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
384 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
385 var pdt = db.Types2.First(t => t.ID == 1).DateTimeValue2;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
386 var dt = DateTime.Parse("2010-12-14T05:00:07.4250141Z");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
387 var tt = db.Types2.First(t => t.ID == 1);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
388
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
389 tt.DateTimeValue2 = dt;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
390
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
391 db.Update(tt);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
392
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
393 var dt2 = db.Types2.First(t => t.ID == 1).DateTimeValue2;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
394
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
395 db.Types2.Update(t => t.ID == 1, t => new LinqDataTypes2 { DateTimeValue2 = pdt });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
396
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
397 Assert.AreEqual(dt, dt2);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
398 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
399 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
400
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
401 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
402 public void DateTimeArray1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
403 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
404 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
405 AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
406 from t in Types2 where new DateTime?[] { new DateTime(2001, 1, 11, 1, 11, 21, 100) }.Contains(t.DateTimeValue) select t,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
407 from t in db.Types2 where new DateTime?[] { new DateTime(2001, 1, 11, 1, 11, 21, 100) }.Contains(t.DateTimeValue) select t));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
408 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
409
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
410 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
411 public void DateTimeArray2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
412 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
413 var arr = new DateTime?[] { new DateTime(2001, 1, 11, 1, 11, 21, 100), new DateTime(2012, 11, 7, 19, 19, 29, 90) };
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
414
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
415 ForEachProvider(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
416 new[] { ProviderName.Access },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
417 db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
418 AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
419 from t in Types2 where arr.Contains(t.DateTimeValue) select t,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
420 from t in db.Types2 where arr.Contains(t.DateTimeValue) select t));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
421 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
422
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
423 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
424 public void DateTimeArray3()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
425 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
426 var arr = new List<DateTime?> { new DateTime(2001, 1, 11, 1, 11, 21, 100) };
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
427
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
428 ForEachProvider(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
429 new[] { ProviderName.Access },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
430 db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
431 AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
432 from t in Types2 where arr.Contains(t.DateTimeValue) select t,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
433 from t in db.Types2 where arr.Contains(t.DateTimeValue) select t));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
434 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
435
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
436 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
437 public void DateTimeParams()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
438 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
439 var arr = new List<DateTime?>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
440 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
441 new DateTime(1992, 1, 11, 1, 11, 21, 100),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
442 new DateTime(1993, 1, 11, 1, 11, 21, 100)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
443 };
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
444
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
445 ForEachProvider(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
446 db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
447 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
448 foreach (var dateTime in arr)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
449 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
450 var dt = DateTimeParams(db, dateTime);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
451 Assert.AreEqual(dateTime, dt);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
452 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
453 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
454 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
455
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
456 static DateTime DateTimeParams(ITestDataContext db, DateTime? dateTime)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
457 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
458 var q =
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
459 from t in db.Types2
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
460 where t.DateTimeValue > dateTime
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
461 select new
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
462 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
463 t.DateTimeValue,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
464 dateTime.Value
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
465 };
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
466
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
467 return q.First().Value;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
468 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
469
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
470 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
471 public void Nullable()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
472 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
473 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
474 from p in Parent select new { Value = p.Value1.GetValueOrDefault() },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
475 from p in db.Parent select new { Value = p.Value1.GetValueOrDefault() }));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
476 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
477
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
478 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
479 public void Unicode()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
480 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
481 ForEachProvider(new[] { "DevartOracle", ProviderName.Informix, ProviderName.Firebird, ProviderName.Sybase }, db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
482 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
483 try
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
484 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
485 db.Person.Delete(p => p.ID > 2);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
486
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
487 var id =
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
488 db.Person
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
489 .InsertWithIdentity(() => new Person
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
490 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
491 FirstName = "擊敗奴隸",
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
492 LastName = "Юникодкин",
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
493 Gender = Gender.Male
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
494 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
495
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
496 Assert.NotNull(id);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
497
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
498 var person = db.Person.Single(p => p.FirstName == "擊敗奴隸" && p.LastName == "Юникодкин");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
499
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
500 Assert.NotNull (person);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
501 Assert.AreEqual(id, person.ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
502 Assert.AreEqual("擊敗奴隸", person.FirstName);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
503 Assert.AreEqual("Юникодкин", person.LastName);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
504 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
505 finally
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
506 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
507 db.Person.Delete(p => p.ID > 2);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
508 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
509 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
510 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
511
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
512 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
513 public void TestCultureInfo([DataContexts] string context)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
514 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
515 var current = Thread.CurrentThread.CurrentCulture;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
516
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
517 Thread.CurrentThread.CurrentCulture = new CultureInfo("ru-RU");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
518
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
519 using (var db = GetDataContext(context))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
520 AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
521 from t in Types where t.MoneyValue > 0.5m select t,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
522 from t in db.Types where t.MoneyValue > 0.5m select t);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
523
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
524 Thread.CurrentThread.CurrentCulture = current;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
525 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
526
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
527 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
528 public void SmallInt()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
529 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
530 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
531 from t1 in Types
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
532 join t2 in Types on t1.SmallIntValue equals t2.ID
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
533 select t1,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
534 from t1 in db.Types
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
535 join t2 in db.Types on t1.SmallIntValue equals t2.ID
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
536 select t1)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
537 );
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
538 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
539
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
540 [TableName("Person")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
541 public class PersonCharTest
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
542 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
543 public int PersonID;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
544 public string FirstName;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
545 public string LastName;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
546 public string MiddleName;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
547 public char Gender;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
548 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
549
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
550 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
551 public void CharTest1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
552 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
553 List<PersonCharTest> list;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
554
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
555 using (var db = new TestDbManager())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
556 list = db.GetTable<PersonCharTest>().ToList();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
557
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
558 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
559 from p in list where p.Gender == 'M' select p.PersonID,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
560 from p in db.GetTable<PersonCharTest>() where p.Gender == 'M' select p.PersonID));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
561 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
562
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
563 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
564 public void CharTest2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
565 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
566 List<PersonCharTest> list;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
567
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
568 using (var db = new TestDbManager())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
569 list = db.GetTable<PersonCharTest>().ToList();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
570
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
571 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
572 from p in list where 'M' == p.Gender select p.PersonID,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
573 from p in db.GetTable<PersonCharTest>() where 'M' == p.Gender select p.PersonID));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
574 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
575
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
576 [TableName("Person")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
577 public class PersonBoolTest
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
578 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
579 public int PersonID;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
580 public string FirstName;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
581 public string LastName;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
582 public string MiddleName;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
583 [MapField("Gender"), MapValue(true, "M"), MapValue(false, "F")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
584 public bool IsMale;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
585 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
586
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
587 //[Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
588 public void BoolTest1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
589 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
590 List<PersonBoolTest> list;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
591
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
592 using (var db = new TestDbManager())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
593 list = db.GetTable<PersonBoolTest>().ToList();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
594
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
595 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
596 from p in list where p.IsMale select p.PersonID,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
597 from p in db.GetTable<PersonBoolTest>() where p.IsMale select p.PersonID));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
598 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
599
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
600 //[Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
601 public void BoolTest2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
602 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
603 List<PersonBoolTest> list;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
604
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
605 using (var db = new TestDbManager())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
606 list = db.GetTable<PersonBoolTest>().ToList();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
607
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
608 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
609 from p in list where p.IsMale == true select p.PersonID,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
610 from p in db.GetTable<PersonBoolTest>() where p.IsMale == true select p.PersonID));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
611 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
612
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
613 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
614 public void BoolTest31()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
615 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
616 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
617 from t in Types2 where (t.BoolValue ?? false) select t,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
618 from t in db.Types2 where t.BoolValue.Value select t));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
619 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
620
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
621 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
622 public void BoolTest32()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
623 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
624 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
625 from t in Types2 where (t.BoolValue ?? false) select t,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
626 from t in db.Types2 where t.BoolValue == true select t));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
627 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
628
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
629 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
630 public void BoolTest33()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
631 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
632 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
633 from t in Types2 where (t.BoolValue ?? false) select t,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
634 from t in db.Types2 where true == t.BoolValue select t));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
635 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
636
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
637 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
638 public void LongTest1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
639 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
640 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
641 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
642 uint value = 0;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
643
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
644 var q =
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
645 from t in db.Types2
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
646 where t.BigIntValue == value
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
647 select t;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
648
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
649 q.ToList();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
650 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
651 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
652
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
653 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
654 public void CompareNullableInt()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
655 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
656 int? param = null;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
657
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
658 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
659 from t in Parent where param == null || t.Value1 == param select t,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
660 from t in db.Parent where param == null || t.Value1 == param select t));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
661
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
662 param = 1;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
663
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
664 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
665 from t in Parent where param == null || t.Value1 == param select t,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
666 from t in db.Parent where param == null || t.Value1 == param select t));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
667 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
668
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
669 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
670 public void CompareNullableBoolean1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
671 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
672 bool? param = null;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
673
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
674 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
675 from t in Types where param == null || t.BoolValue == param select t,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
676 from t in db.Types where param == null || t.BoolValue == param select t));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
677
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
678 param = true;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
679
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
680 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
681 from t in Types where param == null || t.BoolValue == param select t,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
682 from t in db.Types where param == null || t.BoolValue == param select t));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
683 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
684
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
685 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
686 public void CompareNullableBoolean2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
687 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
688 short? param1 = null;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
689 bool? param2 = null;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
690
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
691 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
692 from t1 in Types
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
693 join t2 in Types on t1.ID equals t2.ID
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
694 where (param1 == null || t1.SmallIntValue == param1) && (param2 == null || t1.BoolValue == param2)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
695 select t1,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
696 from t1 in db.Types
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
697 join t2 in db.Types on t1.ID equals t2.ID
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
698 where (param1 == null || t1.SmallIntValue == param1) && (param2 == null || t1.BoolValue == param2)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
699 select t1));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
700
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
701 //param1 = null;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
702 param2 = false;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
703
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
704 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
705 from t1 in Types
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
706 join t2 in Types on t1.ID equals t2.ID
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
707 where (param1 == null || t1.SmallIntValue == param1) && (param2 == null || t1.BoolValue == param2)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
708 select t1,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
709 from t1 in db.Types
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
710 join t2 in db.Types on t1.ID equals t2.ID
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
711 where (param1 == null || t1.SmallIntValue == param1) && (param2 == null || t1.BoolValue == param2)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
712 select t1));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
713 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
714
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
715 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
716 public void CompareNullableBoolean3()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
717 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
718 short? param1 = null;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
719 bool? param2 = false;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
720
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
721 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
722 from t in Types where (param1 == null || t.SmallIntValue == param1) && (param2 == null || t.BoolValue == param2) select t,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
723 from t in db.Types where (param1 == null || t.SmallIntValue == param1) && (param2 == null || t.BoolValue == param2) select t));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
724 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
725 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
726 }