@@ -72,11 +72,11 @@ public async Task WhereWithConstantExpressionAsync()
72
72
public async Task CanUseStringEnumInConditionalAsync ( )
73
73
{
74
74
var query = db . Users
75
- . Where (
76
- user => ( user . Enum1 == EnumStoredAsString . Small
77
- ? EnumStoredAsString . Small
78
- : EnumStoredAsString . Large ) == user . Enum1 )
79
- . Select ( x => x . Enum1 ) ;
75
+ . Where (
76
+ user => ( user . Enum1 == EnumStoredAsString . Small
77
+ ? EnumStoredAsString . Small
78
+ : EnumStoredAsString . Large ) == user . Enum1 )
79
+ . Select ( x => x . Enum1 ) ;
80
80
81
81
Assert . That ( await ( query . CountAsync ( ) ) , Is . GreaterThan ( 0 ) ) ;
82
82
}
@@ -85,11 +85,11 @@ public async Task CanUseStringEnumInConditionalAsync()
85
85
public async Task CanUseStringEnumInConditional2Async ( )
86
86
{
87
87
var query = db . Users
88
- . Where (
89
- user => ( user . Enum1 == EnumStoredAsString . Small
90
- ? user . Enum1
91
- : EnumStoredAsString . Large ) == user . Enum1 )
92
- . Select ( x => x . Enum1 ) ;
88
+ . Where (
89
+ user => ( user . Enum1 == EnumStoredAsString . Small
90
+ ? user . Enum1
91
+ : EnumStoredAsString . Large ) == user . Enum1 )
92
+ . Select ( x => x . Enum1 ) ;
93
93
94
94
Assert . That ( await ( query . CountAsync ( ) ) , Is . GreaterThan ( 0 ) ) ;
95
95
}
@@ -329,11 +329,11 @@ public async Task UsersWithEntityPropertiesThreeLevelsDeepAsync()
329
329
var query = from user in db . Users
330
330
where user . Role . Entity . Output != null
331
331
select new
332
- {
333
- user . Name ,
334
- RoleName = user . Role . Name ,
335
- user . Role . Entity . Output
336
- } ;
332
+ {
333
+ user . Name ,
334
+ RoleName = user . Role . Name ,
335
+ user . Role . Entity . Output
336
+ } ;
337
337
338
338
var list = await ( query . ToListAsync ( ) ) ;
339
339
Assert . That ( list . Count , Is . EqualTo ( 1 ) ) ;
@@ -522,7 +522,7 @@ public async Task UsersWithListContains_MutatingListDoesNotBreakOtherSessionsAsy
522
522
where names . Contains ( user . Name )
523
523
select user ) . ToListAsync ( ) ) ;
524
524
525
- Assert . AreEqual ( 2 , query . Count ) ;
525
+ Assert . AreEqual ( 2 , query . Count ) ;
526
526
527
527
names . Clear ( ) ;
528
528
}
@@ -679,12 +679,25 @@ public async Task TimesheetsWithEnumerableContainsOnSelectAsync()
679
679
680
680
var value = ( EnumStoredAsInt32 ) 1000 ;
681
681
var query = await ( ( from sheet in db . Timesheets
682
- where sheet . Users . Select ( x => x . NullableEnum2 ?? value ) . Contains ( value )
683
- select sheet ) . ToListAsync ( ) ) ;
682
+ where sheet . Users . Select ( x => x . NullableEnum2 ?? value ) . Contains ( value )
683
+ select sheet ) . ToListAsync ( ) ) ;
684
684
685
685
Assert . That ( query . Count , Is . EqualTo ( 1 ) ) ;
686
686
}
687
687
688
+ [ Test ]
689
+ public async Task TimesheetsWithProjectionInSubqueryAsync ( )
690
+ {
691
+ if ( Dialect is MsSqlCeDialect )
692
+ Assert . Ignore ( "Dialect is not supported" ) ;
693
+
694
+ var query = await ( ( from sheet in db . Timesheets
695
+ where sheet . Users . Select ( x => new { Id = x . Id , Name = x . Name } ) . Any ( x => x . Id == 1 )
696
+ select sheet ) . ToListAsync ( ) ) ;
697
+
698
+ Assert . That ( query . Count , Is . EqualTo ( 2 ) ) ;
699
+ }
700
+
688
701
[ Test ]
689
702
public async Task ContainsSubqueryWithCoalesceStringEnumSelectAsync ( )
690
703
{
@@ -786,10 +799,10 @@ public async Task BitwiseQuery3Async()
786
799
var featureSet = FeatureSet . HasThat ;
787
800
var query = await ( (
788
801
from o in session . Query < User > ( )
789
- // When converted to SQL, "undue" parenthesis are stripped out. For most DB, binary operators have same precedence,
790
- // causing "((o.Features | featureSet) & featureSet)" to be equivalent to "o.Features | featureSet & featureSet"
791
- // But for MySql, & take precedence on |, wrecking the test for it. So it is needed to write the test in a way
792
- // such as the parenthesis will be preserved.
802
+ // When converted to SQL, "undue" parenthesis are stripped out. For most DB, binary operators have same precedence,
803
+ // causing "((o.Features | featureSet) & featureSet)" to be equivalent to "o.Features | featureSet & featureSet"
804
+ // But for MySql, & take precedence on |, wrecking the test for it. So it is needed to write the test in a way
805
+ // such as the parenthesis will be preserved.
793
806
where ( featureSet & ( o . Features | featureSet ) ) == featureSet
794
807
select o ) . ToListAsync ( ) ) ;
795
808
@@ -900,9 +913,9 @@ public async Task ContainsOnPersistedCollectionAsync()
900
913
var animal = await ( session . Query < Animal > ( ) . SingleAsync ( a => a . SerialNumber == "123" ) ) ;
901
914
902
915
var result = await ( session . Query < Animal > ( )
903
- . Where ( e => animal . Children . Contains ( e . Father ) )
904
- . OrderBy ( e => e . Id )
905
- . FirstOrDefaultAsync ( ) ) ;
916
+ . Where ( e => animal . Children . Contains ( e . Father ) )
917
+ . OrderBy ( e => e . Id )
918
+ . FirstOrDefaultAsync ( ) ) ;
906
919
Assert . That ( result , Is . Not . Null ) ;
907
920
Assert . That ( result . SerialNumber , Is . EqualTo ( "1121" ) ) ;
908
921
}
@@ -916,9 +929,9 @@ public async Task CanCompareAggregateResultAsync()
916
929
}
917
930
918
931
await ( session . Query < Customer > ( )
919
- . Select ( o => new AggregateDate { Id = o . CustomerId , MaxDate = o . Orders . Max ( l => l . RequiredOrderDate ) } )
920
- . Where ( o => o . MaxDate <= DateTime . Today && o . MaxDate >= DateTime . Today )
921
- . ToListAsync ( ) ) ;
932
+ . Select ( o => new AggregateDate { Id = o . CustomerId , MaxDate = o . Orders . Max ( l => l . RequiredOrderDate ) } )
933
+ . Where ( o => o . MaxDate <= DateTime . Today && o . MaxDate >= DateTime . Today )
934
+ . ToListAsync ( ) ) ;
922
935
}
923
936
924
937
private class AggregateDate
0 commit comments