annotate UnitTests/Linq/InsertTest.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.Linq;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
4 using BLToolkit.Data;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
5 using BLToolkit.Data.DataProvider;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
6 using BLToolkit.Data.Linq;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
7 using BLToolkit.Data.Sql.SqlProvider;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
8 using BLToolkit.DataAccess;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
9 using BLToolkit.Mapping;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
10
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
11 using NUnit.Framework;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
12
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
13 using Data.Linq;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
14 using Data.Linq.Model;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
15
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
16 #region ReSharper disable
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
17 // ReSharper disable ConvertToConstant.Local
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
18 #endregion
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
19
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
20 namespace Update
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
21 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
22 [TestFixture]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
23 public class InsertTest : TestBase
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
24 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
25 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
26 public void DistinctInsert1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
27 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
28 ForEachProvider(new[] { ProviderName.DB2, ProviderName.Informix, ProviderName.PostgreSQL, ProviderName.SQLite, ProviderName.Access }, db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
29 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
30 try
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
31 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
32 db.Types.Delete(c => c.ID > 1000);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
33
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
34 Assert.AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
35 Types.Select(_ => _.ID / 3).Distinct().Count(),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
36 db
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
37 .Types
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
38 .Select(_ => Math.Floor(_.ID / 3.0))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
39 .Distinct()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
40 .Insert(db.Types, _ => new LinqDataTypes
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
41 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
42 ID = (int)(_ + 1001),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
43 GuidValue = Sql.NewGuid(),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
44 BoolValue = true
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
45 }));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
46 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
47 finally
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
48 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
49 db.Types.Delete(c => c.ID > 1000);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
50 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
51 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
52 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
53
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
54 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
55 public void DistinctInsert2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
56 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
57 ForEachProvider(new[] { ProviderName.DB2, ProviderName.Informix, ProviderName.PostgreSQL, ProviderName.SQLite, ProviderName.Access }, db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
58 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
59 try
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
60 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
61 db.Types.Delete(c => c.ID > 1000);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
62
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
63 Assert.AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
64 Types.Select(_ => _.ID / 3).Distinct().Count(),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
65 db.Types
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
66 .Select(_ => Math.Floor(_.ID / 3.0))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
67 .Distinct()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
68 .Into(db.Types)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
69 .Value(t => t.ID, t => (int)(t + 1001))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
70 .Value(t => t.GuidValue, t => Sql.NewGuid())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
71 .Value(t => t.BoolValue, t => true)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
72 .Insert());
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
73 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
74 finally
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
75 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
76 db.Types.Delete(c => c.ID > 1000);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
77 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
78 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
79 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
80
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
81 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
82 public void Insert1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
83 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
84 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
85 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
86 try
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
87 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
88 var id = 1001;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
89
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
90 db.Child.Delete(c => c.ChildID > 1000);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
91
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
92 Assert.AreEqual(1,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
93 db.Child
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
94 .Insert(() => new Child
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
95 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
96 ParentID = 1,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
97 ChildID = id
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
98 }));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
99
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
100 Assert.AreEqual(1, db.Child.Count(c => c.ChildID == id));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
101 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
102 finally
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
103 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
104 db.Child.Delete(c => c.ChildID > 1000);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
105 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
106 });
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 Insert2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
111 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
112 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
113 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
114 try
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
115 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
116 var id = 1001;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
117
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
118 db.Child.Delete(c => c.ChildID > 1000);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
119
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
120 Assert.AreEqual(1,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
121 db
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
122 .Into(db.Child)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
123 .Value(c => c.ParentID, () => 1)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
124 .Value(c => c.ChildID, () => id)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
125 .Insert());
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
126 Assert.AreEqual(1, db.Child.Count(c => c.ChildID == id));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
127 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
128 finally
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
129 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
130 db.Child.Delete(c => c.ChildID > 1000);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
131 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
132 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
133 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
134
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
135 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
136 public void Insert3()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
137 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
138 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
139 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
140 try
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
141 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
142 var id = 1001;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
143
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
144 db.Child.Delete(c => c.ChildID > 1000);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
145
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
146 Assert.AreEqual(1,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
147 db.Child
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
148 .Where(c => c.ChildID == 11)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
149 .Insert(db.Child, c => new Child
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
150 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
151 ParentID = c.ParentID,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
152 ChildID = id
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
153 }));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
154 Assert.AreEqual(1, db.Child.Count(c => c.ChildID == id));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
155 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
156 finally
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
157 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
158 db.Child.Delete(c => c.ChildID > 1000);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
159 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
160 });
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 Insert31()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
165 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
166 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
167 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
168 try
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
169 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
170 var id = 1001;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
171
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
172 db.Child.Delete(c => c.ChildID > 1000);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
173
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
174 Assert.AreEqual(1,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
175 db.Child
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
176 .Where(c => c.ChildID == 11)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
177 .Select(c => new Child
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
178 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
179 ParentID = c.ParentID,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
180 ChildID = id
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
181 })
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
182 .Insert(db.Child, c => c));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
183 Assert.AreEqual(1, db.Child.Count(c => c.ChildID == id));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
184 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
185 finally
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
186 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
187 db.Child.Delete(c => c.ChildID > 1000);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
188 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
189 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
190 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
191
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
192 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
193 public void Insert4()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
194 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
195 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
196 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
197 try
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
198 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
199 var id = 1001;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
200
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
201 db.Child.Delete(c => c.ChildID > 1000);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
202
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
203 Assert.AreEqual(1,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
204 db.Child
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
205 .Where(c => c.ChildID == 11)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
206 .Into(db.Child)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
207 .Value(c => c.ParentID, c => c.ParentID)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
208 .Value(c => c.ChildID, () => id)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
209 .Insert());
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
210 Assert.AreEqual(1, db.Child.Count(c => c.ChildID == id));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
211 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
212 finally
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
213 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
214 db.Child.Delete(c => c.ChildID > 1000);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
215 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
216 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
217 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
218
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
219 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
220 public void Insert5()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
221 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
222 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
223 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
224 try
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
225 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
226 var id = 1001;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
227
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
228 db.Child.Delete(c => c.ChildID > 1000);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
229
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
230 Assert.AreEqual(1,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
231 db.Child
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
232 .Where(c => c.ChildID == 11)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
233 .Into(db.Child)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
234 .Value(c => c.ParentID, c => c.ParentID)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
235 .Value(c => c.ChildID, id)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
236 .Insert());
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
237 Assert.AreEqual(1, db.Child.Count(c => c.ChildID == id));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
238 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
239 finally
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
240 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
241 db.Child.Delete(c => c.ChildID > 1000);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
242 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
243 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
244 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
245
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
246 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
247 public void Insert6()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
248 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
249 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
250 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
251 try
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
252 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
253 db.Parent.Delete(p => p.Value1 == 11);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
254
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
255 Assert.AreEqual(1,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
256 db.Child
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
257 .Where(c => c.ChildID == 11)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
258 .Into(db.Parent)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
259 .Value(p => p.ParentID, c => c.ParentID)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
260 .Value(p => p.Value1, c => (int?)c.ChildID)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
261 .Insert());
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
262 Assert.AreEqual(1, db.Parent.Count(p => p.Value1 == 11));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
263 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
264 finally
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
265 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
266 db.Parent.Delete(p => p.Value1 == 11);
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 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
272 public void Insert7()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
273 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
274 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
275 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
276 try
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
277 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
278 var id = 1001;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
279
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
280 db.Child.Delete(c => c.ChildID > 1000);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
281
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
282 Assert.AreEqual(1,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
283 db
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
284 .Child
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
285 .Value(c => c.ChildID, () => id)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
286 .Value(c => c.ParentID, 1)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
287 .Insert());
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
288 Assert.AreEqual(1, db.Child.Count(c => c.ChildID == id));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
289 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
290 finally
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
291 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
292 db.Child.Delete(c => c.ChildID > 1000);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
293 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
294 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
295 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
296
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
297 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
298 public void Insert8()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
299 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
300 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
301 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
302 try
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
303 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
304 var id = 1001;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
305
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
306 db.Child.Delete(c => c.ChildID > 1000);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
307
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
308 Assert.AreEqual(1,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
309 db
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
310 .Child
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
311 .Value(c => c.ParentID, 1)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
312 .Value(c => c.ChildID, () => id)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
313 .Insert());
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
314 Assert.AreEqual(1, db.Child.Count(c => c.ChildID == id));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
315 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
316 finally
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
317 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
318 db.Child.Delete(c => c.ChildID > 1000);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
319 }
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 Insert9()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
325 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
326 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
327 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
328 try
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
329 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
330 var id = 1001;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
331
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
332 db.Child. Delete(c => c.ParentID > 1000);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
333 db.Parent.Delete(p => p.ParentID > 1000);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
334
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
335 db.Insert(new Parent { ParentID = id, Value1 = id });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
336
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
337 Assert.AreEqual(1,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
338 db.Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
339 .Where(p => p.ParentID == id)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
340 .Insert(db.Child, p => new Child
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
341 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
342 ParentID = p.ParentID,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
343 ChildID = p.ParentID,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
344 }));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
345 Assert.AreEqual(1, db.Child.Count(c => c.ParentID == id));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
346 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
347 finally
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
348 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
349 db.Child. Delete(c => c.ParentID > 1000);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
350 db.Parent.Delete(p => p.ParentID > 1000);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
351 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
352 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
353 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
354
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
355 [TableName("LinqDataTypes")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
356 public class LinqDataTypesArrayTest
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
357 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
358 public int ID;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
359 public decimal MoneyValue;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
360 public DateTime DateTimeValue;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
361 public bool BoolValue;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
362 public Guid GuidValue;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
363 public byte[] BinaryValue;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
364 public short SmallIntValue;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
365 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
366
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
367 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
368 public void InsertArray1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
369 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
370 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
371 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
372 try
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
373 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
374 var types = db.GetTable<LinqDataTypesArrayTest>();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
375
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
376 types.Delete(t => t.ID > 1000);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
377 types.Insert(() => new LinqDataTypesArrayTest { ID = 1001, BoolValue = true, BinaryValue = null });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
378
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
379 Assert.IsNull(types.Single(t => t.ID == 1001).BinaryValue);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
380 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
381 finally
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
382 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
383 db.GetTable<LinqDataTypesArrayTest>().Delete(t => t.ID > 1000);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
384 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
385 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
386 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
387
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
388 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
389 public void InsertArray2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
390 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
391 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
392 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
393 try
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
394 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
395 var types = db.GetTable<LinqDataTypesArrayTest>();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
396
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
397 types.Delete(t => t.ID > 1000);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
398
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
399 byte[] arr = null;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
400
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
401 types.Insert(() => new LinqDataTypesArrayTest { ID = 1001, BoolValue = true, BinaryValue = arr });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
402
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
403 var res = types.Single(t => t.ID == 1001).BinaryValue;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
404
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
405 Assert.IsNull(res);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
406 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
407 finally
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
408 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
409 db.GetTable<LinqDataTypesArrayTest>().Delete(t => t.ID > 1000);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
410 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
411 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
412 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
413
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
414 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
415 public void InsertUnion1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
416 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
417 Child.Count();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
418
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
419 ForEachProvider(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
420 db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
421 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
422 db.Parent.Delete(p => p.ParentID > 1000);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
423
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
424 try
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
425 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
426 var q =
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
427 db.Child. Select(c => new Parent { ParentID = c.ParentID, Value1 = (int) Math.Floor(c.ChildID / 10.0) }).Union(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
428 db.GrandChild.Select(c => new Parent { ParentID = c.ParentID ?? 0, Value1 = (int?)Math.Floor((c.GrandChildID ?? 0) / 100.0) }));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
429
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
430 q.Insert(db.Parent, p => new Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
431 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
432 ParentID = p.ParentID + 1000,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
433 Value1 = p.Value1
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
434 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
435
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
436 Assert.AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
437 Child. Select(c => new { ParentID = c.ParentID }).Union(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
438 GrandChild.Select(c => new { ParentID = c.ParentID ?? 0 })).Count(),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
439 db.Parent.Count(c => c.ParentID > 1000));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
440 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
441 finally
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
442 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
443 db.Parent.Delete(p => p.ParentID > 1000);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
444 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
445 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
446 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
447
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
448 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
449 public void InsertEnum1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
450 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
451 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
452 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
453 try
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
454 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
455 var id = 1001;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
456
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
457 db.Parent4.Delete(_ => _.ParentID > 1000);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
458
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
459 var p = new Parent4
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
460 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
461 ParentID = id,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
462 Value1 = TypeValue.Value2
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
463 };
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
464
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
465 Assert.AreEqual(1,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
466 db.Parent4
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
467 .Insert(() => new Parent4
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
468 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
469 ParentID = 1001,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
470 Value1 = p.Value1
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
471 }));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
472
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
473 Assert.AreEqual(1, db.Parent4.Count(_ => _.ParentID == id && _.Value1 == p.Value1));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
474 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
475 finally
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
476 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
477 db.Parent4.Delete(_ => _.ParentID > 1000);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
478 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
479 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
480 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
481
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
482 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
483 public void InsertEnum2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
484 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
485 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
486 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
487 try
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
488 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
489 var id = 1001;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
490
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
491 db.Parent4.Delete(_ => _.ParentID > 1000);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
492
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
493 Assert.AreEqual(1,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
494 db.Parent4
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
495 .Value(_ => _.ParentID, id)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
496 .Value(_ => _.Value1, TypeValue.Value1)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
497 .Insert());
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
498
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
499 Assert.AreEqual(1, db.Parent4.Count(_ => _.ParentID == id));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
500 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
501 finally
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
502 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
503 db.Parent4.Delete(_ => _.ParentID > 1000);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
504 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
505 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
506 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
507
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
508 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
509 public void InsertEnum3()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
510 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
511 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
512 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
513 try
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
514 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
515 var id = 1001;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
516
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
517 db.Parent4.Delete(_ => _.ParentID > 1000);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
518
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
519 Assert.AreEqual(1,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
520 db.Parent4
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
521 .Value(_ => _.ParentID, id)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
522 .Value(_ => _.Value1, () => TypeValue.Value1)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
523 .Insert());
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
524
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
525 Assert.AreEqual(1, db.Parent4.Count(_ => _.ParentID == id));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
526 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
527 finally
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
528 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
529 db.Parent4.Delete(_ => _.ParentID > 1000);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
530 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
531 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
532 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
533
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
534 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
535 public void InsertNull()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
536 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
537 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
538 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
539 try
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
540 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
541 db.Parent.Delete(p => p.ParentID == 1001);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
542
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
543 Assert.AreEqual(1,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
544 db
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
545 .Into(db.Parent)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
546 .Value(p => p.ParentID, 1001)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
547 .Value(p => p.Value1, (int?)null)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
548 .Insert());
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
549 Assert.AreEqual(1, db.Parent.Count(p => p.ParentID == 1001));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
550 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
551 finally
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
552 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
553 db.Parent.Delete(p => p.Value1 == 1001);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
554 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
555 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
556 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
557
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
558 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
559 public void InsertWithIdentity1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
560 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
561 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
562 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
563 try
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
564 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
565 db.Person.Delete(p => p.ID > 2);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
566
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
567 var id =
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
568 db.Person
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
569 .InsertWithIdentity(() => new Person
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
570 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
571 FirstName = "John",
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
572 LastName = "Shepard",
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
573 Gender = Gender.Male
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
574 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
575
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
576 Assert.NotNull(id);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
577
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
578 var john = db.Person.Single(p => p.FirstName == "John" && p.LastName == "Shepard");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
579
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
580 Assert.NotNull (john);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
581 Assert.AreEqual(id, john.ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
582 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
583 finally
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
584 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
585 db.Person.Delete(p => p.ID > 2);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
586 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
587 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
588 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
589
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
590 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
591 public void InsertWithIdentity2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
592 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
593 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
594 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
595 try
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
596 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
597 db.Person.Delete(p => p.ID > 2);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
598
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
599 var id = db
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
600 .Into(db.Person)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
601 .Value(p => p.FirstName, () => "John")
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
602 .Value(p => p.LastName, () => "Shepard")
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
603 .Value(p => p.Gender, () => Gender.Male)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
604 .InsertWithIdentity();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
605
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
606 Assert.NotNull(id);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
607
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
608 var john = db.Person.Single(p => p.FirstName == "John" && p.LastName == "Shepard");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
609
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
610 Assert.NotNull (john);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
611 Assert.AreEqual(id, john.ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
612 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
613 finally
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
614 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
615 db.Person.Delete(p => p.ID > 2);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
616 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
617 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
618 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
619
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
620 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
621 public void InsertWithIdentity3()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
622 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
623 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
624 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
625 try
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
626 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
627 db.Person.Delete(p => p.ID > 2);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
628
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
629 var id = db
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
630 .Into(db.Person)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
631 .Value(p => p.FirstName, "John")
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
632 .Value(p => p.LastName, "Shepard")
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
633 .Value(p => p.Gender, Gender.Male)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
634 .InsertWithIdentity();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
635
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
636 Assert.NotNull(id);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
637
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
638 var john = db.Person.Single(p => p.FirstName == "John" && p.LastName == "Shepard");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
639
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
640 Assert.NotNull (john);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
641 Assert.AreEqual(id, john.ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
642 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
643 finally
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
644 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
645 db.Person.Delete(p => p.ID > 2);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
646 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
647 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
648 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
649
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
650 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
651 public void InsertWithIdentity4()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
652 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
653 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
654 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
655 try
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
656 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
657 for (var i = 0; i < 2; i++)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
658 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
659 db.Person.Delete(p => p.ID > 2);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
660
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
661 var id = db.InsertWithIdentity(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
662 new Person
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
663 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
664 FirstName = "John" + i,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
665 LastName = "Shepard",
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
666 Gender = Gender.Male
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
667 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
668
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
669 Assert.NotNull(id);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
670
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
671 var john = db.Person.Single(p => p.FirstName == "John" + i && p.LastName == "Shepard");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
672
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
673 Assert.NotNull (john);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
674 Assert.AreEqual(id, john.ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
675 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
676 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
677 finally
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
678 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
679 db.Person.Delete(p => p.ID > 2);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
680 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
681 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
682 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
683
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
684 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
685 public void InsertWithIdentity5()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
686 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
687 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
688 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
689 try
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
690 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
691 for (var i = 0; i < 2; i++)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
692 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
693 db.Person.Delete(p => p.ID > 2);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
694
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
695 var person = new Person
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
696 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
697 FirstName = "John" + i,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
698 LastName = "Shepard",
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
699 Gender = Gender.Male
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
700 };
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
701
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
702 var id = db.InsertWithIdentity(person);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
703
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
704 Assert.NotNull(id);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
705
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
706 var john = db.Person.Single(p => p.FirstName == "John" + i && p.LastName == "Shepard");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
707
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
708 Assert.NotNull (john);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
709 Assert.AreEqual(id, john.ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
710 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
711 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
712 finally
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
713 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
714 db.Person.Delete(p => p.ID > 2);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
715 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
716 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
717 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
718
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
719 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
720 public void InsertOrUpdate1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
721 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
722 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
723 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
724 var id = 0;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
725
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
726 try
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
727 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
728 id = Convert.ToInt32(db.Person.InsertWithIdentity(() => new Person
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
729 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
730 FirstName = "John",
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
731 LastName = "Shepard",
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
732 Gender = Gender.Male
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
733 }));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
734
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
735 for (var i = 0; i < 3; i++)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
736 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
737 db.Patient.InsertOrUpdate(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
738 () => new Patient
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
739 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
740 PersonID = id,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
741 Diagnosis = "abc",
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
742 },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
743 p => new Patient
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
744 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
745 Diagnosis = (p.Diagnosis.Length + i).ToString(),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
746 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
747 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
748
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
749 Assert.AreEqual("3", db.Patient.Single(p => p.PersonID == id).Diagnosis);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
750 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
751 finally
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
752 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
753 db.Patient.Delete(p => p.PersonID == id);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
754 db.Person. Delete(p => p.ID == id);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
755 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
756 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
757 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
758
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
759 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
760 public void InsertOrReplace1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
761 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
762 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
763 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
764 var id = 0;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
765
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
766 try
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
767 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
768 id = Convert.ToInt32(db.Person.InsertWithIdentity(() => new Person
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
769 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
770 FirstName = "John",
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
771 LastName = "Shepard",
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
772 Gender = Gender.Male
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
773 }));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
774
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
775 for (var i = 0; i < 3; i++)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
776 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
777 db.InsertOrReplace(new Patient
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
778 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
779 PersonID = id,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
780 Diagnosis = ("abc" + i).ToString(),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
781 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
782 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
783
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
784 Assert.AreEqual("abc2", db.Patient.Single(p => p.PersonID == id).Diagnosis);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
785 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
786 finally
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
787 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
788 db.Patient.Delete(p => p.PersonID == id);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
789 db.Person. Delete(p => p.ID == id);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
790 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
791 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
792 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
793
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
794 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
795 public void InsertOrUpdate3()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
796 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
797 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
798 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
799 var id = 0;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
800
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
801 try
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
802 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
803 id = Convert.ToInt32(db.Person.InsertWithIdentity(() => new Person
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
804 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
805 FirstName = "John",
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
806 LastName = "Shepard",
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
807 Gender = Gender.Male
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
808 }));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
809
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
810 var diagnosis = "abc";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
811
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
812 for (var i = 0; i < 3; i++)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
813 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
814 db.Patient.InsertOrUpdate(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
815 () => new Patient
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
816 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
817 PersonID = id,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
818 Diagnosis = "abc",
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
819 },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
820 p => new Patient
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
821 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
822 Diagnosis = (p.Diagnosis.Length + i).ToString(),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
823 },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
824 () => new Patient
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
825 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
826 PersonID = id,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
827 //Diagnosis = diagnosis,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
828 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
829
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
830 diagnosis = (diagnosis.Length + i).ToString();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
831 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
832
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
833 Assert.AreEqual("3", db.Patient.Single(p => p.PersonID == id).Diagnosis);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
834 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
835 finally
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
836 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
837 db.Patient.Delete(p => p.PersonID == id);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
838 db.Person. Delete(p => p.ID == id);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
839 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
840 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
841 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
842
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
843 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
844 public void InsertBatch1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
845 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
846 ForEachProvider(new[] { ProviderName.PostgreSQL }, db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
847 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
848 if (db is DbManager && ((DbManager)db).ConfigurationString == "Oracle")
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
849 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
850 db.Types2.Delete(_ => _.ID > 1000);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
851
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
852 ((DbManager)db).InsertBatch(1, new[]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
853 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
854 new LinqDataTypes2 { ID = 1003, MoneyValue = 0m, DateTimeValue = null, BoolValue = true, GuidValue = new Guid("ef129165-6ffe-4df9-bb6b-bb16e413c883"), SmallIntValue = null, IntValue = null },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
855 new LinqDataTypes2 { ID = 1004, MoneyValue = 0m, DateTimeValue = DateTime.Now, BoolValue = false, GuidValue = null, SmallIntValue = 2, IntValue = 1532334 },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
856 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
857
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
858 db.Types2.Delete(_ => _.ID > 1000);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
859 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
860 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
861 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
862
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
863 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
864 public void InsertBatch2([IncludeDataContexts("Sql2008", "Sql2012")] string context)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
865 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
866 using (var db = new TestDbManager(context))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
867 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
868 db.Types2.Delete(_ => _.ID > 1000);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
869
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
870 db.InsertBatch(100, new[]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
871 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
872 new LinqDataTypes2 { ID = 1003, MoneyValue = 0m, DateTimeValue = null, BoolValue = true, GuidValue = new Guid("ef129165-6ffe-4df9-bb6b-bb16e413c883"), SmallIntValue = null, IntValue = null },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
873 new LinqDataTypes2 { ID = 1004, MoneyValue = 0m, DateTimeValue = DateTime.Now, BoolValue = false, GuidValue = null, SmallIntValue = 2, IntValue = 1532334 },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
874 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
875
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
876 db.Types2.Delete(_ => _.ID > 1000);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
877 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
878 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
879
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
880 [TableName("Parent")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
881 public class NullableFieldTestObject
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
882 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
883 public int ParentID;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
884 [BLToolkit.Mapping.Nullable] public int Value1;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
885 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
886
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
887 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
888 public void NullableFieldTest()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
889 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
890 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
891 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
892 db.Parent.Delete(p => p.ParentID == 1100);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
893
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
894 db.Insert(new NullableFieldTestObject { ParentID = 1100 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
895
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
896 var parent = db.Parent.Single(p => p.ParentID == 1100);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
897
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
898 Assert.IsNull(parent.Value1);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
899 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
900 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
901
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
902 public class FullName
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
903 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
904 public string FirstName { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
905 public string LastName;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
906 [Nullable] public string MiddleName;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
907 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
908
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
909 [TableName("Person")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
910 [MapField("FirstName", "Name.FirstName")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
911 [MapField("LastName", "Name.LastName")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
912 [MapField("MiddleName", "Name.MiddleName")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
913 public class TestPerson1
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
914 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
915 [Identity, PrimaryKey]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
916 //[SequenceName("PostgreSQL", "Seq")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
917 [SequenceName("Firebird", "PersonID")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
918 [MapField("PersonID")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
919 public int ID;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
920
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
921 public string Gender;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
922
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
923 public FullName Name;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
924 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
925
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
926 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
927 public void Insert11()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
928 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
929 var p = new TestPerson1 { Name = new FullName { FirstName = "fn", LastName = "ln" }, Gender = "M" };
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
930
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
931 ForEachProvider(db => db.Insert(p));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
932 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
933
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
934 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
935 public void Insert12()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
936 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
937 ForEachProvider(db => db
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
938 .Into(db.GetTable<TestPerson1>())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
939 .Value(_ => _.Name.FirstName, "FirstName")
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
940 .Value(_ => _.Name.LastName, () => "LastName")
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
941 .Value(_ => _.Gender, "F")
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
942 .Insert());
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
943
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
944 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
945
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
946 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
947 public void Insert13()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
948 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
949 ForEachProvider(db => db.GetTable<TestPerson1>()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
950 .Insert(() => new TestPerson1
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
951 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
952 Name = new FullName
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
953 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
954 FirstName = "FirstName",
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
955 LastName = "LastName"
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
956 },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
957 Gender = "M",
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
958 }));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
959 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
960
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
961 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
962 public void Insert14()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
963 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
964 ForEachProvider(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
965 new [] { ProviderName.SqlCe, ProviderName.Access, "Sql2000", "Sql2005", ProviderName.Sybase },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
966 db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
967 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
968 try
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
969 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
970 db.Person.Delete(p => p.FirstName.StartsWith("Insert14"));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
971
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
972 Assert.AreEqual(1,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
973 db.Person
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
974 .Insert(() => new Person
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
975 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
976 FirstName = "Insert14" + db.Person.Where(p => p.ID == 1).Select(p => p.FirstName).FirstOrDefault(),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
977 LastName = "Shepard",
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
978 Gender = Gender.Male
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
979 }));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
980
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
981 Assert.AreEqual(1, db.Person.Count(p => p.FirstName.StartsWith("Insert14")));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
982 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
983 finally
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
984 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
985 db.Person.Delete(p => p.FirstName.StartsWith("Insert14"));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
986 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
987 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
988 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
989
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
990 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
991 public void InsertSingleIdentity()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
992 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
993 ForEachProvider(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
994 new [] { ProviderName.Informix, ProviderName.SqlCe },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
995 db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
996 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
997 try
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
998 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
999 db.TestIdentity.Delete();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1000
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1001 var id = db.TestIdentity.InsertWithIdentity(() => new TestIdentity {});
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1002
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1003 Assert.NotNull(id);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1004 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1005 finally
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1006 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1007 db.TestIdentity.Delete();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1008 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1009 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1010 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1011 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1012 }