voglio CONCAT due espressioni per l'espressione finaleLINQ Expression Conversione/Concat da Int a stringa
Expression<Func<T, string>>
Così ho creato espressione belwo codice funziona bene solo per i tipi di stringa, Se ottengo memberExpression come Int32 o DateTime gettando eccezione
Espressione di tipo 'System.Int32' non può essere utilizzato per il parametro di tipo 'System.String' del metodo 'System.String Concat (System.String, System.String)'
Se convertire l'espressione come
var conversion = Expression.Convert(memberExpression, typeof (string));
get Nessun operatore di coercizione è definito tra i tipi "System.Int32" e "System.String".
Si prega di aiutarmi a risolvere
Codice
MethodInfo bodyContactMethod = typeof (string).GetMethod("Concat",new[] {typeof (string), typeof (string)});
ParameterExpression parameter = Expression.Parameter(typeof (T));
body = Expression.Call(bodyContactMethod, cons, memberExpression);
return Expression.Lambda<Func<T, string>>(body, parameter);
Perché non modificare la firma del metodo per prendere un 'oggetto' e chiamare semplicemente .ToString() su tutto. –
Expression> –
Ciao, sto usando questa espressione in GroupBy, quindi ne ho bisogno nel formato sopra –