@@ -53,9 +53,11 @@ await _context.BulkInsertAsync(compositeKeyRows,
5353 }
5454
5555 [ Theory ]
56- [ InlineData ( 1 ) ]
57- [ InlineData ( 100 ) ]
58- public async Task BulkMerge_Using_Linq_With_Transaction ( int length )
56+ [ InlineData ( 0 , 1 ) ]
57+ [ InlineData ( 1 , 0 ) ]
58+ [ InlineData ( 1 , 1 ) ]
59+ [ InlineData ( 100 , 100 ) ]
60+ public async Task BulkMerge_Using_Linq_With_Transaction ( int length , int insertLength )
5961 {
6062 await SeedData ( length ) ;
6163
@@ -80,28 +82,28 @@ public async Task BulkMerge_Using_Linq_With_Transaction(int length)
8082 row . SeasonAsString = Season . Spring ;
8183 }
8284
83- rows . Add ( new SingleKeyRow < int >
85+ for ( int i = length ; i < length + insertLength ; i ++ )
8486 {
85- Column1 = length ,
86- Column2 = "Inserted using Merge" + length ,
87- Column3 = DateTime . Now ,
88- Season = Season . Summer ,
89- SeasonAsString = Season . Summer
90- } ) ;
91-
92- var newId1 = length ;
93- var newId2 = length ;
87+ rows . Add ( new SingleKeyRow < int >
88+ {
89+ Column1 = i ,
90+ Column2 = "Inserted using Merge" + i ,
91+ Column3 = DateTime . Now ,
92+ Season = Season . Summer ,
93+ SeasonAsString = Season . Summer
94+ } ) ;
9495
95- compositeKeyRows . Add ( new CompositeKeyRow < int , int >
96- {
97- Id1 = newId1 ,
98- Id2 = newId2 ,
99- Column1 = newId2 ,
100- Column2 = "Inserted using Merge" + newId2 ,
101- Column3 = DateTime . Now ,
102- Season = Season . Summer ,
103- SeasonAsString = Season . Summer
104- } ) ;
96+ compositeKeyRows . Add ( new CompositeKeyRow < int , int >
97+ {
98+ Id1 = i ,
99+ Id2 = i ,
100+ Column1 = i ,
101+ Column2 = "Inserted using Merge" + i ,
102+ Column3 = DateTime . Now ,
103+ Season = Season . Summer ,
104+ SeasonAsString = Season . Summer
105+ } ) ;
106+ }
105107
106108 await _context . BulkMergeAsync ( rows ,
107109 row => row . Id ,
@@ -128,7 +130,7 @@ await _context.BulkMergeAsync(compositeKeyRows,
128130 var dbRows = _context . SingleKeyRows . AsNoTracking ( ) . ToList ( ) ;
129131 var dbCompositeKeyRows = _context . CompositeKeyRows . AsNoTracking ( ) . ToList ( ) ;
130132
131- for ( var i = 0 ; i < length + 1 ; i ++ )
133+ for ( var i = 0 ; i < length + insertLength ; i ++ )
132134 {
133135 Assert . Equal ( rows [ i ] . Id , dbRows [ i ] . Id ) ;
134136 Assert . Equal ( rows [ i ] . Column1 , dbRows [ i ] . Column1 ) ;
@@ -148,9 +150,11 @@ await _context.BulkMergeAsync(compositeKeyRows,
148150 }
149151
150152 [ Theory ]
151- [ InlineData ( 1 ) ]
152- [ InlineData ( 100 ) ]
153- public async Task BulkMerge_Using_Dynamic_String_With_Transaction ( int length )
153+ [ InlineData ( 0 , 1 ) ]
154+ [ InlineData ( 1 , 0 ) ]
155+ [ InlineData ( 1 , 1 ) ]
156+ [ InlineData ( 100 , 100 ) ]
157+ public async Task BulkMerge_Using_Dynamic_String_With_Transaction ( int length , int insertLength )
154158 {
155159 await SeedData ( length ) ;
156160
@@ -163,40 +167,40 @@ public async Task BulkMerge_Using_Dynamic_String_With_Transaction(int length)
163167 {
164168 row . Column2 = "abc" ;
165169 row . Column3 = DateTime . Now ;
166- row . Season = Season . Autumn ;
167- row . SeasonAsString = Season . Autumn ;
170+ row . Season = Season . Spring ;
171+ row . SeasonAsString = Season . Spring ;
168172 }
169173
170174 foreach ( var row in compositeKeyRows )
171175 {
172176 row . Column2 = "abc" ;
173177 row . Column3 = DateTime . Now ;
174- row . Season = Season . Autumn ;
175- row . SeasonAsString = Season . Autumn ;
178+ row . Season = Season . Spring ;
179+ row . SeasonAsString = Season . Spring ;
176180 }
177181
178- rows . Add ( new SingleKeyRow < int >
182+ for ( int i = length ; i < length + insertLength ; i ++ )
179183 {
180- Column1 = length ,
181- Column2 = "Inserted using Merge" + length ,
182- Column3 = DateTime . Now ,
183- Season = Season . Summer ,
184- SeasonAsString = Season . Summer
185- } ) ;
186-
187- var newId1 = length ;
188- var newId2 = length ;
184+ rows . Add ( new SingleKeyRow < int >
185+ {
186+ Column1 = i ,
187+ Column2 = "Inserted using Merge" + i ,
188+ Column3 = DateTime . Now ,
189+ Season = Season . Summer ,
190+ SeasonAsString = Season . Summer
191+ } ) ;
189192
190- compositeKeyRows . Add ( new CompositeKeyRow < int , int >
191- {
192- Id1 = newId1 ,
193- Id2 = newId2 ,
194- Column1 = newId2 ,
195- Column2 = "Inserted using Merge" + newId2 ,
196- Column3 = DateTime . Now ,
197- Season = Season . Summer ,
198- SeasonAsString = Season . Summer
199- } ) ;
193+ compositeKeyRows . Add ( new CompositeKeyRow < int , int >
194+ {
195+ Id1 = i ,
196+ Id2 = i ,
197+ Column1 = i ,
198+ Column2 = "Inserted using Merge" + i ,
199+ Column3 = DateTime . Now ,
200+ Season = Season . Summer ,
201+ SeasonAsString = Season . Summer
202+ } ) ;
203+ }
200204
201205 await _context . BulkMergeAsync ( rows ,
202206 "Id" ,
@@ -222,7 +226,7 @@ await _context.BulkMergeAsync(compositeKeyRows,
222226 var dbRows = _context . SingleKeyRows . AsNoTracking ( ) . ToList ( ) ;
223227 var dbCompositeKeyRows = _context . CompositeKeyRows . AsNoTracking ( ) . ToList ( ) ;
224228
225- for ( var i = 0 ; i < length + 1 ; i ++ )
229+ for ( var i = 0 ; i < length + insertLength ; i ++ )
226230 {
227231 Assert . Equal ( rows [ i ] . Id , dbRows [ i ] . Id ) ;
228232 Assert . Equal ( rows [ i ] . Column1 , dbRows [ i ] . Column1 ) ;
@@ -242,6 +246,7 @@ await _context.BulkMergeAsync(compositeKeyRows,
242246 }
243247
244248 [ Theory ]
249+ [ InlineData ( 0 ) ]
245250 [ InlineData ( 1 ) ]
246251 [ InlineData ( 100 ) ]
247252 public async Task BulkMerge_ReturnDbGeneratedId_True ( int length )
@@ -309,6 +314,7 @@ await _context.BulkInsertAsync(configurationEntries, options =>
309314 }
310315
311316 [ Theory ]
317+ [ InlineData ( 0 ) ]
312318 [ InlineData ( 1 ) ]
313319 [ InlineData ( 100 ) ]
314320 public async Task BulkMerge_ReturnDbGeneratedId_False ( int length )
@@ -388,6 +394,7 @@ await _context.BulkInsertAsync(configurationEntries, options =>
388394 }
389395
390396 [ Theory ]
397+ [ InlineData ( 0 ) ]
391398 [ InlineData ( 1 ) ]
392399 [ InlineData ( 100 ) ]
393400 public async Task BulkMerge_UpdateOnly ( int length )
@@ -456,6 +463,7 @@ await _context.BulkInsertAsync(configurationEntries, options =>
456463 }
457464
458465 [ Theory ]
466+ [ InlineData ( 0 ) ]
459467 [ InlineData ( 1 ) ]
460468 [ InlineData ( 100 ) ]
461469 public async Task BulkMerge_InsertOnly ( int length )
@@ -534,6 +542,7 @@ await _context.BulkInsertAsync(configurationEntries, options =>
534542 }
535543
536544 [ Theory ]
545+ [ InlineData ( 0 ) ]
537546 [ InlineData ( 1 ) ]
538547 [ InlineData ( 100 ) ]
539548 public async Task BulkMerge_DoNothing ( int length )
0 commit comments