@@ -84,6 +84,51 @@ public void EqualStringEnumTest()
8484 ) ;
8585 }
8686
87+ [ Test ]
88+ public void EqualStringEnumTestWithFetch ( )
89+ {
90+ AssertResults (
91+ new Dictionary < string , Predicate < IType > >
92+ {
93+ { "3" , o => o is EnumStoredAsStringType }
94+ } ,
95+ db . Users . Fetch ( o => o . Role ) . ThenFetch ( o => o . ParentRole ) . Where ( o => o . Enum1 == EnumStoredAsString . Large ) ,
96+ db . Users . Fetch ( o => o . Role ) . ThenFetch ( o => o . ParentRole ) . Where ( o => EnumStoredAsString . Large == o . Enum1 ) ,
97+ db . Timesheets . SelectMany ( o => o . Users ) . Fetch ( o => o . Role ) . Where ( o => EnumStoredAsString . Large == o . Enum1 ) ,
98+ db . Timesheets . FetchMany ( o => o . Users ) . SelectMany ( o => o . Users ) . Where ( o => EnumStoredAsString . Large == o . Enum1 ) ,
99+ db . Timesheets . FetchMany ( o => o . Users ) . Where ( o => o . Users . Any ( u => EnumStoredAsString . Large == u . Enum1 ) )
100+ ) ;
101+ }
102+
103+ [ Test ]
104+ public void EqualStringEnumTestWithSubQuery ( )
105+ {
106+ AssertResults (
107+ new Dictionary < string , Predicate < IType > >
108+ {
109+ { "3" , o => o is EnumStoredAsStringType }
110+ } ,
111+ db . Users . Where ( o => db . Users . Any ( u => u . Enum1 == EnumStoredAsString . Large ) ) ,
112+ db . Users . Where ( o => db . Users . Any ( u => EnumStoredAsString . Large == u . Enum1 ) ) ,
113+ db . Timesheets . Where ( o => o . Users . Any ( u => EnumStoredAsString . Large == u . Enum1 ) )
114+ ) ;
115+ }
116+
117+ [ Test ]
118+ public void EqualStringEnumTestWithMaxSubQuery ( )
119+ {
120+ AssertResults (
121+ new Dictionary < string , Predicate < IType > >
122+ {
123+ { "3" , o => o is EnumStoredAsStringType }
124+ } ,
125+ db . Users . Fetch ( o => o . Role ) . Where ( o => db . Users . Max ( u => u . Enum1 == EnumStoredAsString . Large ? u . Id : - u . Id ) == o . Id ) ,
126+ db . Users . Fetch ( o => o . Role ) . Where ( o => db . Users . Max ( u => EnumStoredAsString . Large == u . Enum1 ? u . Id : - u . Id ) == o . Id ) ,
127+ db . Users . Where ( o => db . Users . Max ( u => u . Enum1 == EnumStoredAsString . Large ? u . Id : - u . Id ) == o . Id ) ,
128+ db . Users . Where ( o => db . Users . Max ( u => EnumStoredAsString . Large == u . Enum1 ? u . Id : - u . Id ) == o . Id )
129+ ) ;
130+ }
131+
87132 [ Test ]
88133 public void EqualStringTest ( )
89134 {
0 commit comments