Trabalhando com tipos anuláveis em árvores de expressão

Eu tenho um método de extensão para filtrar dinamicamente os resultados do Linq to Entities usando valores de string. Funciona bem até eu usá-lo para filtrar colunas anuláveis. Aqui está o meu código:

public static IOrderedQueryable<T> OrderingHelperWhere<T>(this IQueryable<T> source, string columnName, object value)
{
    ParameterExpression table = Expression.Parameter(typeof(T), "");
    Expression column = Expression.PropertyOrField(table, columnName);
    Expression where = Expression.GreaterThanOrEqual(column, Expression.Constant(value));
    Expression lambda = Expression.Lambda(where, new ParameterExpression[] { table });

    Type[] exprArgTypes = { source.ElementType };

    MethodCallExpression methodCall = Expression.Call(typeof(Queryable), 
                                                      "Where", 
                                                      exprArgTypes, 
                                                      source.Expression, 
                                                      lambda);

    return (IOrderedQueryable<T>)source.Provider.CreateQuery<T>(methodCall);
}

Aqui está como eu o uso:

var results = (from row in ctx.MyTable select row)
              .OrderingHelperWhere("userId", 5);//userId is nullable column

Aqui está a exceção que estou recebendo quando o uso para colunas da tabela anuláveis:

O operador binário GreaterThanOrEqual não está definido para os tipos 'System.Nullable`1 [System.Int32]' e 'System.Int32'

Eu não conseguia entender isso. O que devo fazer?

questionAnswers(2)

yourAnswerToTheQuestion