@@ -247,32 +247,34 @@ public class OfTypeTest : AutoBuildTest
247247 [ Test ]
248248 public void Test01 ( )
249249 {
250+ var expectedStrings = new [ ] { "100000String1" , "200000String2" , "300000String3" } ;
251+
250252 using ( var session = Domain . OpenSession ( ) )
251253 using ( var tx = session . OpenTransaction ( ) ) {
252254 var result = session . Query . All < AClassTable > ( ) . OfType < IB1 > ( )
253255 . Select ( x => x . Field3 . Value2 . Value1 + x . Field4 ) . ToArray ( ) ;
254- Assert . That ( result [ 0 ] , Is . EqualTo ( "100000String1" ) ) ;
255- Assert . That ( result [ 1 ] , Is . EqualTo ( "200000String2" ) ) ;
256- Assert . That ( result [ 2 ] , Is . EqualTo ( "300000String3" ) ) ;
256+ foreach ( var expectedString in expectedStrings ) {
257+ Assert . That ( result . Contains ( expectedString ) , Is . True ) ;
258+ }
257259 }
258260
259261 using ( var session = Domain . OpenSession ( ) )
260262 using ( var tx = session . OpenTransaction ( ) ) {
261263 var result = session . Query . All < AConcreteTable > ( ) . OfType < IB1 > ( )
262264 . Select ( x => x . Field3 . Value2 . Value1 + x . Field4 ) . ToArray ( ) ;
263- Assert . That ( result [ 0 ] , Is . EqualTo ( "100000String1" ) ) ;
264- Assert . That ( result [ 1 ] , Is . EqualTo ( "200000String2" ) ) ;
265- Assert . That ( result [ 2 ] , Is . EqualTo ( "300000String3" ) ) ;
265+ foreach ( var expectedString in expectedStrings ) {
266+ Assert . That ( result . Contains ( expectedString ) , Is . True ) ;
267+ }
266268 }
267269
268270
269271 using ( var session = Domain . OpenSession ( ) )
270272 using ( var tx = session . OpenTransaction ( ) ) {
271273 var result = session . Query . All < ASingleTable > ( ) . OfType < IB1 > ( )
272274 . Select ( x => x . Field3 . Value2 . Value1 + x . Field4 ) . ToArray ( ) ;
273- Assert . That ( result [ 0 ] , Is . EqualTo ( "100000String1" ) ) ;
274- Assert . That ( result [ 1 ] , Is . EqualTo ( "200000String2" ) ) ;
275- Assert . That ( result [ 2 ] , Is . EqualTo ( "300000String3" ) ) ;
275+ foreach ( var expectedString in expectedStrings ) {
276+ Assert . That ( result . Contains ( expectedString ) , Is . True ) ;
277+ }
276278 }
277279 }
278280
@@ -289,7 +291,8 @@ public void Test02()
289291 . Select ( x => x . Field3 . Value2 . Value1 + x . Field4 ) . ToArray ( ) ;
290292
291293 Assert . That ( result1 , Is . Not . Empty ) ;
292- Assert . That ( result1 . SequenceEqual ( result2 ) ) ;
294+ Assert . That ( result1 . Length , Is . EqualTo ( result2 . Length ) ) ;
295+ Assert . That ( result1 . Intersect ( result2 ) . Count ( ) , Is . EqualTo ( result1 . Length ) ) ;
293296 }
294297
295298
@@ -303,7 +306,8 @@ public void Test02()
303306 . Select ( x => x . Field3 . Value2 . Value1 + x . Field4 ) . ToArray ( ) ;
304307
305308 Assert . That ( result1 , Is . Not . Empty ) ;
306- Assert . That ( result1 . SequenceEqual ( result2 ) ) ;
309+ Assert . That ( result1 . Length , Is . EqualTo ( result2 . Length ) ) ;
310+ Assert . That ( result1 . Intersect ( result2 ) . Count ( ) , Is . EqualTo ( result1 . Length ) ) ;
307311 }
308312
309313
@@ -317,7 +321,8 @@ public void Test02()
317321 . Select ( x => x . Field3 . Value2 . Value1 + x . Field4 ) . ToArray ( ) ;
318322
319323 Assert . That ( result1 , Is . Not . Empty ) ;
320- Assert . That ( result1 . SequenceEqual ( result2 ) ) ;
324+ Assert . That ( result1 . Length , Is . EqualTo ( result2 . Length ) ) ;
325+ Assert . That ( result1 . Intersect ( result2 ) . Count ( ) , Is . EqualTo ( result1 . Length ) ) ;
321326 }
322327 }
323328
@@ -328,8 +333,9 @@ public void Test03()
328333 using ( var tx = session . OpenTransaction ( ) ) {
329334 var result1 = session . Query . All < B1ClassTable > ( ) . OfType < IB1 > ( )
330335 . Select ( x => x . Field3 . Value2 . Value1 + x . Field4 ) . ToArray ( ) ;
331- Assert . That ( result1 . First ( ) , Is . EqualTo ( "100000String1" ) ) ;
332- Assert . That ( result1 . Last ( ) , Is . EqualTo ( "200000String2" ) ) ;
336+ Assert . That ( result1 . Length , Is . EqualTo ( 2 ) ) ;
337+ new [ ] { "100000String1" , "200000String2" }
338+ . ForEach ( s => Assert . That ( result1 . Contains ( s ) , Is . True ) ) ;
333339
334340 var result2 = session . Query . All < B2ClassTable > ( ) . OfType < IB1 > ( )
335341 . Select ( x => x . Field3 . Value2 . Value1 + x . Field4 ) . ToArray ( ) ;
@@ -341,8 +347,9 @@ public void Test03()
341347 using ( var tx = session . OpenTransaction ( ) ) {
342348 var result1 = session . Query . All < B1ConcreteTable > ( ) . OfType < IB1 > ( )
343349 . Select ( x => x . Field3 . Value2 . Value1 + x . Field4 ) . ToArray ( ) ;
344- Assert . That ( result1 . First ( ) , Is . EqualTo ( "100000String1" ) ) ;
345- Assert . That ( result1 . Last ( ) , Is . EqualTo ( "200000String2" ) ) ;
350+ Assert . That ( result1 . Length , Is . EqualTo ( 2 ) ) ;
351+ new [ ] { "100000String1" , "200000String2" }
352+ . ForEach ( s => Assert . That ( result1 . Contains ( s ) , Is . True ) ) ;
346353
347354 var result2 = session . Query . All < B2ConcreteTable > ( ) . OfType < IB1 > ( )
348355 . Select ( x => x . Field3 . Value2 . Value1 + x . Field4 ) . ToArray ( ) ;
@@ -354,8 +361,9 @@ public void Test03()
354361 using ( var tx = session . OpenTransaction ( ) ) {
355362 var result1 = session . Query . All < B1SingleTable > ( ) . OfType < IB1 > ( )
356363 . Select ( x => x . Field3 . Value2 . Value1 + x . Field4 ) . ToArray ( ) ;
357- Assert . That ( result1 . First ( ) , Is . EqualTo ( "100000String1" ) ) ;
358- Assert . That ( result1 . Last ( ) , Is . EqualTo ( "200000String2" ) ) ;
364+ Assert . That ( result1 . Length , Is . EqualTo ( 2 ) ) ;
365+ new [ ] { "100000String1" , "200000String2" }
366+ . ForEach ( s => Assert . That ( result1 . Contains ( s ) , Is . True ) ) ;
359367
360368 var result2 = session . Query . All < B2SingleTable > ( ) . OfType < IB1 > ( )
361369 . Select ( x => x . Field3 . Value2 . Value1 + x . Field4 ) . ToArray ( ) ;
@@ -370,6 +378,9 @@ public void Test04()
370378 using ( var tx = session . OpenTransaction ( ) ) {
371379 var result1 = session . Query . All < B1ClassTable > ( ) . OfType < AClassTable > ( )
372380 . Select ( x => x . Field2 ) . ToArray ( ) ;
381+ Assert . That ( result1 . Length , Is . EqualTo ( 2 ) ) ;
382+ new [ ] { 1000 , 2000 }
383+ . ForEach ( i => Assert . That ( result1 . Contains ( i ) , Is . True ) ) ;
373384 Assert . That ( result1 . First ( ) , Is . EqualTo ( 1000 ) ) ;
374385 Assert . That ( result1 . Last ( ) , Is . EqualTo ( 2000 ) ) ;
375386
@@ -383,8 +394,9 @@ public void Test04()
383394 using ( var tx = session . OpenTransaction ( ) ) {
384395 var result1 = session . Query . All < B1ConcreteTable > ( ) . OfType < AConcreteTable > ( )
385396 . Select ( x => x . Field2 ) . ToArray ( ) ;
386- Assert . That ( result1 . First ( ) , Is . EqualTo ( 1000 ) ) ;
387- Assert . That ( result1 . Last ( ) , Is . EqualTo ( 2000 ) ) ;
397+ Assert . That ( result1 . Length , Is . EqualTo ( 2 ) ) ;
398+ new [ ] { 1000 , 2000 }
399+ . ForEach ( i => Assert . That ( result1 . Contains ( i ) , Is . True ) ) ;
388400
389401 var result2 = session . Query . All < B2ConcreteTable > ( ) . OfType < AConcreteTable > ( )
390402 . Select ( x => x . Field2 ) . ToArray ( ) ;
@@ -396,8 +408,9 @@ public void Test04()
396408 using ( var tx = session . OpenTransaction ( ) ) {
397409 var result1 = session . Query . All < B1SingleTable > ( ) . OfType < ASingleTable > ( )
398410 . Select ( x => x . Field2 ) . ToArray ( ) ;
399- Assert . That ( result1 . First ( ) , Is . EqualTo ( 1000 ) ) ;
400- Assert . That ( result1 . Last ( ) , Is . EqualTo ( 2000 ) ) ;
411+ Assert . That ( result1 . Length , Is . EqualTo ( 2 ) ) ;
412+ new [ ] { 1000 , 2000 }
413+ . ForEach ( i => Assert . That ( result1 . Contains ( i ) , Is . True ) ) ;
401414
402415 var result2 = session . Query . All < B2SingleTable > ( ) . OfType < ASingleTable > ( )
403416 . Select ( x => x . Field2 ) . ToArray ( ) ;
@@ -463,10 +476,9 @@ public void Test07()
463476 var source = session . Query . All < AClassTable > ( ) . OfType < IB1 > ( ) ;
464477
465478 var result1 = source . Select ( x => x . Field3 . Value1 ) . ToArray ( ) ;
466- Assert . That ( result1 [ 0 ] , Is . EqualTo ( 10000 ) ) ;
467- Assert . That ( result1 [ 1 ] , Is . EqualTo ( 20000 ) ) ;
468- Assert . That ( result1 [ 2 ] , Is . EqualTo ( 30000 ) ) ;
469479 Assert . That ( result1 . Length , Is . EqualTo ( 3 ) ) ;
480+ new [ ] { 10000 , 20000 , 30000 }
481+ . ForEach ( i => Assert . That ( result1 . Contains ( i ) ) ) ;
470482
471483 var result2 = source . OfType < B3ClassTable > ( ) . Select ( x => x . Field3 . Value1 ) . ToArray ( ) ;
472484 Assert . That ( result2 , Is . Empty ) ;
@@ -477,10 +489,9 @@ public void Test07()
477489 var source = session . Query . All < AConcreteTable > ( ) . OfType < IB1 > ( ) ;
478490
479491 var result1 = source . Select ( x => x . Field3 . Value1 ) . ToArray ( ) ;
480- Assert . That ( result1 [ 0 ] , Is . EqualTo ( 10000 ) ) ;
481- Assert . That ( result1 [ 1 ] , Is . EqualTo ( 20000 ) ) ;
482- Assert . That ( result1 [ 2 ] , Is . EqualTo ( 30000 ) ) ;
483492 Assert . That ( result1 . Length , Is . EqualTo ( 3 ) ) ;
493+ new [ ] { 10000 , 20000 , 30000 }
494+ . ForEach ( i => Assert . That ( result1 . Contains ( i ) ) ) ;
484495
485496 var result2 = source . OfType < B3ConcreteTable > ( ) . Select ( x => x . Field3 . Value1 ) . ToArray ( ) ;
486497 Assert . That ( result2 , Is . Empty ) ;
@@ -490,10 +501,9 @@ public void Test07()
490501 using ( var tx = session . OpenTransaction ( ) ) {
491502 var source = session . Query . All < ASingleTable > ( ) . OfType < IB1 > ( ) ;
492503 var result1 = source . Select ( x => x . Field3 . Value1 ) . ToArray ( ) ;
493- Assert . That ( result1 [ 0 ] , Is . EqualTo ( 10000 ) ) ;
494- Assert . That ( result1 [ 1 ] , Is . EqualTo ( 20000 ) ) ;
495- Assert . That ( result1 [ 2 ] , Is . EqualTo ( 30000 ) ) ;
496504 Assert . That ( result1 . Length , Is . EqualTo ( 3 ) ) ;
505+ new [ ] { 10000 , 20000 , 30000 }
506+ . ForEach ( i => Assert . That ( result1 . Contains ( i ) ) ) ;
497507
498508 var result2 = source . OfType < B3SingleTable > ( ) . Select ( x => x . Field3 . Value1 ) . ToArray ( ) ;
499509 Assert . That ( result2 , Is . Empty ) ;
@@ -509,7 +519,8 @@ public void Test08()
509519 var result1 = source . ToArray ( ) . OfType < IC > ( ) . Select ( x => x . Field5 ) . ToArray ( ) ;
510520 var result2 = source . OfType < IC > ( ) . Select ( x => x . Field5 ) . ToArray ( ) ;
511521 Assert . That ( result1 , Is . Not . Empty ) ;
512- Assert . That ( result1 . SequenceEqual ( result2 ) ) ;
522+ Assert . That ( result1 . Length , Is . EqualTo ( result2 . Length ) ) ;
523+ Assert . That ( result1 . Intersect ( result2 ) . Count ( ) , Is . EqualTo ( result1 . Length ) ) ;
513524 }
514525
515526 using ( var session = Domain . OpenSession ( ) )
@@ -518,7 +529,8 @@ public void Test08()
518529 var result1 = source . ToArray ( ) . OfType < IC > ( ) . Select ( x => x . Field5 ) . ToArray ( ) ;
519530 var result2 = source . OfType < IC > ( ) . Select ( x => x . Field5 ) . ToArray ( ) ;
520531 Assert . That ( result1 , Is . Not . Empty ) ;
521- Assert . That ( result1 . SequenceEqual ( result2 ) ) ;
532+ Assert . That ( result1 . Length , Is . EqualTo ( result2 . Length ) ) ;
533+ Assert . That ( result1 . Intersect ( result2 ) . Count ( ) , Is . EqualTo ( result1 . Length ) ) ;
522534 }
523535
524536 using ( var session = Domain . OpenSession ( ) )
@@ -527,7 +539,8 @@ public void Test08()
527539 var result1 = source . ToArray ( ) . OfType < IC > ( ) . Select ( x => x . Field5 ) . ToArray ( ) ;
528540 var result2 = source . OfType < IC > ( ) . Select ( x => x . Field5 ) . ToArray ( ) ;
529541 Assert . That ( result1 , Is . Not . Empty ) ;
530- Assert . That ( result1 . SequenceEqual ( result2 ) ) ;
542+ Assert . That ( result1 . Length , Is . EqualTo ( result2 . Length ) ) ;
543+ Assert . That ( result1 . Intersect ( result2 ) . Count ( ) , Is . EqualTo ( result1 . Length ) ) ;
531544 }
532545 }
533546
@@ -540,7 +553,8 @@ public void Test09()
540553 var result1 = source . ToArray ( ) . OfType < IBaseInterface > ( ) . Select ( x => x . BaseField ) . ToArray ( ) ;
541554 var result2 = source . OfType < IBaseInterface > ( ) . Select ( x => x . BaseField ) . ToArray ( ) ;
542555 Assert . That ( result1 , Is . Not . Empty ) ;
543- Assert . That ( result1 . SequenceEqual ( result2 ) ) ;
556+ Assert . That ( result1 . Length , Is . EqualTo ( result2 . Length ) ) ;
557+ Assert . That ( result1 . Intersect ( result2 ) . Count ( ) , Is . EqualTo ( result1 . Length ) ) ;
544558 }
545559
546560 using ( var session = Domain . OpenSession ( ) )
@@ -549,7 +563,8 @@ public void Test09()
549563 var result1 = source . ToArray ( ) . OfType < IBaseInterface > ( ) . Select ( x => x . BaseField ) . ToArray ( ) ;
550564 var result2 = source . OfType < IBaseInterface > ( ) . Select ( x => x . BaseField ) . ToArray ( ) ;
551565 Assert . That ( result1 , Is . Not . Empty ) ;
552- Assert . That ( result1 . SequenceEqual ( result2 ) ) ;
566+ Assert . That ( result1 . Length , Is . EqualTo ( result2 . Length ) ) ;
567+ Assert . That ( result1 . Intersect ( result2 ) . Count ( ) , Is . EqualTo ( result1 . Length ) ) ;
553568 }
554569
555570 using ( var session = Domain . OpenSession ( ) )
@@ -558,7 +573,8 @@ public void Test09()
558573 var result1 = source . ToArray ( ) . OfType < IBaseInterface > ( ) . Select ( x => x . BaseField ) . ToArray ( ) ;
559574 var result2 = source . OfType < IBaseInterface > ( ) . Select ( x => x . BaseField ) . ToArray ( ) ;
560575 Assert . That ( result1 , Is . Not . Empty ) ;
561- Assert . That ( result1 . SequenceEqual ( result2 ) ) ;
576+ Assert . That ( result1 . Length , Is . EqualTo ( result2 . Length ) ) ;
577+ Assert . That ( result1 . Intersect ( result2 ) . Count ( ) , Is . EqualTo ( result1 . Length ) ) ;
562578 }
563579 }
564580
@@ -599,22 +615,20 @@ public void Test11()
599615 . OfType < IBaseEntity > ( ) ;
600616
601617 var result1 = query . Select ( x => x . Field1 ) . ToArray ( ) ;
602- Assert . That ( result1 [ 0 ] , Is . EqualTo ( 10 ) ) ;
603- Assert . That ( result1 [ 1 ] , Is . EqualTo ( 20 ) ) ;
604- Assert . That ( result1 [ 2 ] , Is . EqualTo ( 30 ) ) ;
605618 Assert . That ( result1 . Length , Is . EqualTo ( 3 ) ) ;
619+ new [ ] { 10 , 20 , 30 }
620+ . ForEach ( i => Assert . That ( result1 . Contains ( i ) ) ) ;
606621
607622 var result2 = query . OfType < AClassTable > ( ) . Select ( x => x . Field1 ) . ToArray ( ) ;
608- Assert . That ( result2 [ 0 ] , Is . EqualTo ( 10 ) ) ;
609- Assert . That ( result2 [ 1 ] , Is . EqualTo ( 20 ) ) ;
610- Assert . That ( result2 [ 2 ] , Is . EqualTo ( 30 ) ) ;
611623 Assert . That ( result2 . Length , Is . EqualTo ( 3 ) ) ;
624+ new [ ] { 10 , 20 , 30 }
625+ . ForEach ( i => Assert . That ( result2 . Contains ( i ) ) ) ;
612626
613627 var result3 = query . OfType < AClassTable > ( ) . OfType < IBaseEntity > ( )
614628 . OfType < C1ClassTable > ( ) . Select ( x => x . Field1 ) . ToArray ( ) ;
615- Assert . That ( result3 [ 0 ] , Is . EqualTo ( 10 ) ) ;
616- Assert . That ( result3 [ 1 ] , Is . EqualTo ( 20 ) ) ;
617629 Assert . That ( result3 . Length , Is . EqualTo ( 2 ) ) ;
630+ new [ ] { 10 , 20 }
631+ . ForEach ( i => Assert . That ( result3 . Contains ( i ) ) ) ;
618632 }
619633
620634 using ( var session = Domain . OpenSession ( ) )
@@ -623,22 +637,20 @@ public void Test11()
623637 . OfType < IBaseEntity > ( ) ;
624638
625639 var result1 = query . Select ( x => x . Field1 ) . ToArray ( ) ;
626- Assert . That ( result1 [ 0 ] , Is . EqualTo ( 10 ) ) ;
627- Assert . That ( result1 [ 1 ] , Is . EqualTo ( 20 ) ) ;
628- Assert . That ( result1 [ 2 ] , Is . EqualTo ( 30 ) ) ;
629640 Assert . That ( result1 . Length , Is . EqualTo ( 3 ) ) ;
641+ new [ ] { 10 , 20 , 30 }
642+ . ForEach ( i => Assert . That ( result1 . Contains ( i ) ) ) ;
630643
631644 var result2 = query . OfType < AConcreteTable > ( ) . Select ( x => x . Field1 ) . ToArray ( ) ;
632- Assert . That ( result2 [ 0 ] , Is . EqualTo ( 10 ) ) ;
633- Assert . That ( result2 [ 1 ] , Is . EqualTo ( 20 ) ) ;
634- Assert . That ( result2 [ 2 ] , Is . EqualTo ( 30 ) ) ;
635645 Assert . That ( result2 . Length , Is . EqualTo ( 3 ) ) ;
646+ new [ ] { 10 , 20 , 30 }
647+ . ForEach ( i => Assert . That ( result2 . Contains ( i ) ) ) ;
636648
637649 var result3 = query . OfType < AConcreteTable > ( ) . OfType < IBaseEntity > ( )
638650 . OfType < C1ConcreteTable > ( ) . Select ( x => x . Field1 ) . ToArray ( ) ;
639- Assert . That ( result3 [ 0 ] , Is . EqualTo ( 10 ) ) ;
640- Assert . That ( result3 [ 1 ] , Is . EqualTo ( 20 ) ) ;
641651 Assert . That ( result3 . Length , Is . EqualTo ( 2 ) ) ;
652+ new [ ] { 10 , 20 }
653+ . ForEach ( i => Assert . That ( result3 . Contains ( i ) ) ) ;
642654 }
643655
644656 using ( var session = Domain . OpenSession ( ) )
@@ -647,22 +659,20 @@ public void Test11()
647659 . OfType < IBaseEntity > ( ) ;
648660
649661 var result1 = query . Select ( x => x . Field1 ) . ToArray ( ) ;
650- Assert . That ( result1 [ 0 ] , Is . EqualTo ( 10 ) ) ;
651- Assert . That ( result1 [ 1 ] , Is . EqualTo ( 20 ) ) ;
652- Assert . That ( result1 [ 2 ] , Is . EqualTo ( 30 ) ) ;
653662 Assert . That ( result1 . Length , Is . EqualTo ( 3 ) ) ;
663+ new [ ] { 10 , 20 , 30 }
664+ . ForEach ( i => Assert . That ( result1 . Contains ( i ) ) ) ;
654665
655666 var result2 = query . OfType < ASingleTable > ( ) . Select ( x => x . Field1 ) . ToArray ( ) ;
656- Assert . That ( result2 [ 0 ] , Is . EqualTo ( 10 ) ) ;
657- Assert . That ( result2 [ 1 ] , Is . EqualTo ( 20 ) ) ;
658- Assert . That ( result2 [ 2 ] , Is . EqualTo ( 30 ) ) ;
659667 Assert . That ( result2 . Length , Is . EqualTo ( 3 ) ) ;
668+ new [ ] { 10 , 20 , 30 }
669+ . ForEach ( i => Assert . That ( result2 . Contains ( i ) ) ) ;
660670
661671 var result3 = query . OfType < ASingleTable > ( ) . OfType < IBaseEntity > ( )
662672 . OfType < C1SingleTable > ( ) . Select ( x => x . Field1 ) . ToArray ( ) ;
663- Assert . That ( result3 [ 0 ] , Is . EqualTo ( 10 ) ) ;
664- Assert . That ( result3 [ 1 ] , Is . EqualTo ( 20 ) ) ;
665673 Assert . That ( result3 . Length , Is . EqualTo ( 2 ) ) ;
674+ new [ ] { 10 , 20 }
675+ . ForEach ( i => Assert . That ( result3 . Contains ( i ) ) ) ;
666676 }
667677 }
668678
@@ -735,7 +745,8 @@ public void Test13()
735745 var resultB = result1B . Union ( result2B ) . Select ( x => x . Field1 ) . ToArray ( ) ;
736746
737747 Assert . That ( resultA , Is . Not . Empty ) ;
738- Assert . That ( resultA . SequenceEqual ( resultB ) ) ;
748+ Assert . That ( resultA . Length , Is . EqualTo ( resultB . Length ) ) ;
749+ Assert . That ( resultA . Intersect ( resultB ) . Count ( ) , Is . EqualTo ( resultA . Length ) ) ;
739750 }
740751
741752 using ( var session = Domain . OpenSession ( ) )
@@ -752,7 +763,8 @@ public void Test13()
752763 var resultB = result1B . Union ( result2B ) . Select ( x => x . Field1 ) . ToArray ( ) ;
753764
754765 Assert . That ( resultA , Is . Not . Empty ) ;
755- Assert . That ( resultA . SequenceEqual ( resultB ) ) ;
766+ Assert . That ( resultA . Length , Is . EqualTo ( resultB . Length ) ) ;
767+ Assert . That ( resultA . Intersect ( resultB ) . Count ( ) , Is . EqualTo ( resultA . Length ) ) ;
756768 }
757769
758770 using ( var session = Domain . OpenSession ( ) )
@@ -769,7 +781,8 @@ public void Test13()
769781 var resultB = result1B . Union ( result2B ) . Select ( x => x . Field1 ) . ToArray ( ) ;
770782
771783 Assert . That ( resultA , Is . Not . Empty ) ;
772- Assert . That ( resultA . SequenceEqual ( resultB ) ) ;
784+ Assert . That ( resultA . Length , Is . EqualTo ( resultB . Length ) ) ;
785+ Assert . That ( resultA . Intersect ( resultB ) . Count ( ) , Is . EqualTo ( resultA . Length ) ) ;
773786 }
774787 }
775788
@@ -863,7 +876,6 @@ public void Test14()
863876 Assert . That ( result1A . Contains ( item ) ) ;
864877 }
865878
866-
867879 var result2A = source1B . Union ( source2B ) . ToArray ( ) . OfType < B3SingleTable > ( ) . Select ( x => x . Field4 )
868880 . ToArray ( ) ;
869881 var result2B = source1B . Union ( source2B ) . OfType < B3SingleTable > ( ) . Select ( x => x . Field4 ) . ToArray ( ) ;
0 commit comments