@@ -162,6 +162,58 @@ public void Updates_enum_flags_with_int_value()
162
162
}
163
163
}
164
164
165
+ [ Test ]
166
+ public void CanQueryByEnumValue_using_select_with_expression_enum_flags ( )
167
+ {
168
+ using ( var db = OpenDbConnection ( ) )
169
+ {
170
+ db . DropAndCreateTable < TypeWithFlagsEnum > ( ) ;
171
+ db . Save ( new TypeWithFlagsEnum { Id = 1 , Flags = FlagsEnum . FlagOne } ) ;
172
+ db . Save ( new TypeWithFlagsEnum { Id = 2 , Flags = FlagsEnum . FlagOne } ) ;
173
+ db . Save ( new TypeWithFlagsEnum { Id = 3 , Flags = FlagsEnum . FlagTwo } ) ;
174
+
175
+ var results = db . Select < TypeWithFlagsEnum > ( q => q . Flags == FlagsEnum . FlagOne ) ;
176
+ db . GetLastSql ( ) . Print ( ) ;
177
+ Assert . That ( results . Count , Is . EqualTo ( 2 ) ) ;
178
+ results = db . Select < TypeWithFlagsEnum > ( q => q . Flags == FlagsEnum . FlagTwo ) ;
179
+ db . GetLastSql ( ) . Print ( ) ;
180
+ Assert . That ( results . Count , Is . EqualTo ( 1 ) ) ;
181
+ }
182
+ }
183
+
184
+ [ Test ]
185
+ public void CanQueryByEnumValue_using_select_with_string_enum_flags ( )
186
+ {
187
+ using ( var db = OpenDbConnection ( ) )
188
+ {
189
+ db . DropAndCreateTable < TypeWithFlagsEnum > ( ) ;
190
+ db . Save ( new TypeWithFlagsEnum { Id = 1 , Flags = FlagsEnum . FlagOne } ) ;
191
+ db . Save ( new TypeWithFlagsEnum { Id = 2 , Flags = FlagsEnum . FlagOne } ) ;
192
+ db . Save ( new TypeWithFlagsEnum { Id = 3 , Flags = FlagsEnum . FlagTwo } ) ;
193
+
194
+ var target = db . SelectFmt < TypeWithFlagsEnum > (
195
+ "Flags" . SqlColumn ( ) + " = {0}" , FlagsEnum . FlagOne ) ;
196
+ db . GetLastSql ( ) . Print ( ) ;
197
+ Assert . AreEqual ( 2 , target . Count ( ) ) ;
198
+ }
199
+ }
200
+
201
+ [ Test ]
202
+ public void CanQueryByEnumValue_using_where_with_AnonType_enum_flags ( )
203
+ {
204
+ using ( var db = OpenDbConnection ( ) )
205
+ {
206
+ db . DropAndCreateTable < TypeWithFlagsEnum > ( ) ;
207
+ db . Save ( new TypeWithFlagsEnum { Id = 1 , Flags = FlagsEnum . FlagOne } ) ;
208
+ db . Save ( new TypeWithFlagsEnum { Id = 2 , Flags = FlagsEnum . FlagOne } ) ;
209
+ db . Save ( new TypeWithFlagsEnum { Id = 3 , Flags = FlagsEnum . FlagTwo } ) ;
210
+
211
+ var target = db . Where < TypeWithFlagsEnum > ( new { Flags = FlagsEnum . FlagOne } ) ;
212
+ db . GetLastSql ( ) . Print ( ) ;
213
+ Assert . AreEqual ( 2 , target . Count ( ) ) ;
214
+ }
215
+ }
216
+
165
217
[ Test ]
166
218
public void Does_save_Enum_with_label_by_default ( )
167
219
{
0 commit comments