1
1
using System . Data ;
2
2
using System . Linq ;
3
3
using NUnit . Framework ;
4
+ using ServiceStack . DataAnnotations ;
5
+ using ServiceStack . Model ;
4
6
using ServiceStack . OrmLite . Tests . UseCase ;
5
7
6
8
namespace ServiceStack . OrmLite . Tests
@@ -174,7 +176,7 @@ public void Can_do_joins_with_complex_wheres_using_SqlExpression()
174
176
var costs = results . ConvertAll ( x => x . Cost ) ;
175
177
Assert . That ( costs , Is . EquivalentTo ( new [ ] { 1.99m , 1.49m , 9.99m } ) ) ;
176
178
var orderIds = results . ConvertAll ( x => x . OrderId ) ;
177
- var expectedOrderIds = new [ ] { customers [ 0 ] . Orders [ 0 ] . Id , customers [ 0 ] . Orders [ 2 ] . Id , customers [ 0 ] . Orders [ 4 ] . Id } ;
179
+ var expectedOrderIds = new [ ] { customers [ 0 ] . Orders [ 0 ] . Id , customers [ 0 ] . Orders [ 2 ] . Id , customers [ 0 ] . Orders [ 4 ] . Id } ;
178
180
Assert . That ( orderIds , Is . EquivalentTo ( expectedOrderIds ) ) ;
179
181
180
182
//Same as above using using db.From<Customer>()
@@ -432,7 +434,7 @@ public void Does_populate_custom_columns_based_on_property_convention()
432
434
Assert . That ( addressIds , Is . EquivalentTo ( expectedAddressIds ) ) ;
433
435
434
436
var orderIds = results . ConvertAll ( x => x . OrderId ) ;
435
- var expectedOrderIds = new [ ] { customer . Orders [ 0 ] . Id , customer . Orders [ 1 ] . Id } ;
437
+ var expectedOrderIds = new [ ] { customer . Orders [ 0 ] . Id , customer . Orders [ 1 ] . Id } ;
436
438
Assert . That ( orderIds , Is . EquivalentTo ( expectedOrderIds ) ) ;
437
439
438
440
var customerNames = results . ConvertAll ( x => x . CustomerName ) ;
@@ -546,5 +548,50 @@ public void Can_load_list_of_references()
546
548
Assert . That ( results [ 0 ] . Orders . Select ( x => x . Cost ) ,
547
549
Is . EquivalentTo ( new [ ] { 1.99m , 3.98m , 1.49m , 2.98m , 9.99m } ) ) ;
548
550
}
551
+
552
+ [ Test ]
553
+ public void Can_join_on_references_attribute ( )
554
+ {
555
+ db . DropAndCreateTable < TABLE_1 > ( ) ;
556
+ db . DropAndCreateTable < TABLE_2 > ( ) ;
557
+
558
+ var id1 = db . Insert ( new TABLE_1 { One = "A" } , selectIdentity : true ) ;
559
+ var id2 = db . Insert ( new TABLE_1 { One = "B" } , selectIdentity : true ) ;
560
+
561
+ db . Insert ( new TABLE_2 { Three = "C" , TableOneKey = ( int ) id1 } ) ;
562
+
563
+ var q = db . From < TABLE_1 > ( )
564
+ . Join < TABLE_2 > ( ) ;
565
+ var results = db . Select ( q ) ;
566
+
567
+ Assert . That ( results . Count , Is . EqualTo ( 1 ) ) ;
568
+ Assert . That ( results [ 0 ] . One , Is . EqualTo ( "A" ) ) ;
569
+ }
570
+ }
571
+
572
+ [ Alias ( "Tabela1" ) ]
573
+ public class TABLE_1 : IHasId < int >
574
+ {
575
+ [ AutoIncrement ]
576
+ [ Alias ( "Key" ) ]
577
+ public int Id { get ; set ; }
578
+
579
+ [ Alias ( "Ena" ) ]
580
+ public string One { get ; set ; }
581
+ }
582
+
583
+ [ Alias ( "Tabela2" ) ]
584
+ public class TABLE_2 : IHasId < int >
585
+ {
586
+ [ AutoIncrement ]
587
+ [ Alias ( "Key" ) ]
588
+ public int Id { get ; set ; }
589
+
590
+ [ Alias ( "Tri" ) ]
591
+ public string Three { get ; set ; }
592
+
593
+ [ References ( typeof ( TABLE_1 ) ) ]
594
+ [ Alias ( "Tabela1" ) ]
595
+ public int TableOneKey { get ; set ; }
549
596
}
550
597
}
0 commit comments