diff --git a/src/CouchDB.Driver/Translators/ConstantExpressionTranslator.cs b/src/CouchDB.Driver/Translators/ConstantExpressionTranslator.cs index 55fe0c1..e0c9486 100644 --- a/src/CouchDB.Driver/Translators/ConstantExpressionTranslator.cs +++ b/src/CouchDB.Driver/Translators/ConstantExpressionTranslator.cs @@ -56,6 +56,9 @@ private void HandleConstant(object constant) _sb.Append(JsonConvert.SerializeObject(constant)); } break; + case TypeCode.Int32: + _sb.Append((int)constant); + break; default: _sb.Append(constant); break; diff --git a/tests/CouchDB.Driver.UnitTests/Find/Find_Selector_Conditions.cs b/tests/CouchDB.Driver.UnitTests/Find/Find_Selector_Conditions.cs index c60d022..2fce5e3 100644 --- a/tests/CouchDB.Driver.UnitTests/Find/Find_Selector_Conditions.cs +++ b/tests/CouchDB.Driver.UnitTests/Find/Find_Selector_Conditions.cs @@ -96,6 +96,12 @@ public void Array_InSingleItem() Assert.Equal(@"{""selector"":{""age"":{""$in"":[20]}}}", json); } [Fact] + public void Array_InEnum() + { + var json = _rebels.Where(r => r.Species.In(new[] { Species.Human, Species.Droid })).ToString(); + Assert.Equal(@"{""selector"":{""species"":{""$in"":[0,1]}}}", json); + } + [Fact] public void Array_NotIn() { var json = _rebels.Where(r => !r.Age.In(new[] { 20, 30 })).ToString();