diff --git a/Sieve/Services/SieveProcessor.cs b/Sieve/Services/SieveProcessor.cs
index a8403500e66f0c132e747ea6c5e7ef42366be8c3..3d5d49b5fcd1c2c057df4da11cb212082e64d238 100644
--- a/Sieve/Services/SieveProcessor.cs
+++ b/Sieve/Services/SieveProcessor.cs
@@ -274,6 +274,21 @@ namespace Sieve.Services
             return fullQueryString;
         }
 
+        protected object ChangeType(object value, Type conversion)
+        {
+            var t = conversion;
+
+            if (t.IsGenericType && t.GetGenericTypeDefinition().Equals(typeof(Nullable<>)))
+            {
+                if (value == null)
+                {
+                    return null;
+                }
+
+                t = Nullable.GetUnderlyingType(t);
+            }            
+            return Convert.ChangeType(value, t);
+        }
         public Expression<Func<TEntity, bool>> GetFilterExpressionQuery<TEntity>(
            TSieveModel model,
            bool bCaseSensitive = false)
@@ -284,8 +299,9 @@ namespace Sieve.Services
             if (model?.GetFiltersParsed() == null)
             {
                 var property = Expression.Property(parameterExpression, "id");
-                ConstantExpression constant = Expression.Constant(0, typeof(int));
+                ConstantExpression constant = Expression.Constant(this.ChangeType(0, property.Type), property.Type);
                 var rst = Expression.GreaterThan(property, constant);
+
                 return Expression.Lambda<Func<TEntity, bool>>(rst, parameterExpression);
             }