9
9
10
10
11
11
using System . Linq ;
12
+ using NHibernate . Criterion ;
12
13
using NHibernate . DomainModel ;
13
14
using NUnit . Framework ;
14
15
using NHibernate . Linq ;
@@ -19,23 +20,68 @@ namespace NHibernate.Test.NHSpecificTest.GH2463
19
20
[ TestFixture ]
20
21
public class FixtureAsync : TestCase
21
22
{
23
+ protected override bool AppliesTo ( Dialect . Dialect dialect )
24
+ {
25
+ return Dialect . SupportsScalarSubSelects ;
26
+ }
27
+
22
28
protected override string [ ] Mappings
23
29
{
24
30
get { return new [ ] { "ABC.hbm.xml" } ; }
25
31
}
26
32
33
+ protected override void OnSetUp ( )
34
+ {
35
+ using ( var session = OpenSession ( ) )
36
+ using ( var transaction = session . BeginTransaction ( ) )
37
+ {
38
+ var a = new A { Name = "A" , AnotherName = "X" } ;
39
+ session . Save ( a ) ;
40
+
41
+ var b = new B { Name = "B" , AnotherName = "X" } ;
42
+ session . Save ( b ) ;
43
+
44
+ transaction . Commit ( ) ;
45
+ }
46
+ }
47
+
48
+ protected override void OnTearDown ( )
49
+ {
50
+ using ( var session = OpenSession ( ) )
51
+ using ( var transaction = session . BeginTransaction ( ) )
52
+ {
53
+ session . CreateQuery ( "delete from System.Object" ) . ExecuteUpdate ( ) ;
54
+
55
+ transaction . Commit ( ) ;
56
+ }
57
+ }
58
+
59
+ //Also see GH-2599
27
60
[ Test ]
28
- public async Task CanJoinOnEntityWithDiscriminatorAsync ( )
61
+ public async Task CanJoinOnEntityWithDiscriminatorLinqAsync ( )
29
62
{
30
63
using ( var s = OpenSession ( ) )
31
64
{
32
- await ( s . Query < A > ( ) . Join (
33
- s . Query < A > ( ) ,
34
- a => a . Id ,
35
- b => b . Id ,
65
+ var list = await ( s . Query < A > ( ) . Join (
66
+ s . Query < B > ( ) ,
67
+ a => a . AnotherName ,
68
+ b => b . AnotherName ,
36
69
( a , b ) =>
37
70
new { a , b } ) . ToListAsync ( ) ) ;
38
71
}
39
72
}
73
+
74
+ [ Test ]
75
+ public async Task CanJoinOnEntityWithDiscriminatorQueryOverAsync ( )
76
+ {
77
+ using ( var s = OpenSession ( ) )
78
+ {
79
+ A a = null ;
80
+ B b = null ;
81
+ var list = await ( s . QueryOver < A > ( ( ) => a )
82
+ . JoinEntityAlias ( ( ) => b , ( ) => a . AnotherName == b . AnotherName )
83
+ . Select ( ( x ) => a . AsEntity ( ) , ( x ) => b . AsEntity ( ) ) . ListAsync < object [ ] > ( ) ) ;
84
+ }
85
+ }
40
86
}
41
87
}
0 commit comments