Arbeiten mit nullfähigen Typen in Ausdrucksbäumen

Ich habe eine Erweiterungsmethode zum dynamischen Filtern von Linq to Entities-Ergebnissen mithilfe von Zeichenfolgenwerten. Es funktioniert einwandfrei, bis ich damit nullfähige Spalten filtere. Hier ist mein Code:

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);
}

So benutze ich es:

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

Hier ist die Ausnahme, die ich bekomme, wenn ich diese für nullfähige Tabellenspalten verwende:

Der Binäroperator GreaterThanOrEqual ist für die Typen 'System.Nullable`1 [System.Int32]' und 'System.Int32' nicht definiert.

Ich konnte das nicht herausfinden. Was soll ich machen

Antworten auf die Frage(4)

Ihre Antwort auf die Frage