Chcę Concat dwa wyrażenia dla ostatecznego wyrazuLINQ Expression Conversion/Concat z Int ciąg
Expression<Func<T, string>>
Więc stworzyliśmy wyrażenie belwo kod działa poprawnie tylko dla typów łańcuchowych, Jeśli dostanę memberExpression jako Int32 lub DateTime wyrzucanie wyjątkiem
Ekspresja typu 'System.Int32' nie może być stosowany do parametru typu 'system.string' metody 'system.string concat (system.string, system.string)'
Jeśli przekonwertuj wyrażenie jako
var conversion = Expression.Convert(memberExpression, typeof (string));
pobieranie Brak operatora przymusu między typami "System.Int32" i "System.String".
Proszę mi pomóc rozwiązać
Kod
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);
Dlaczego nie zmienić sygnatury metody, aby wziąć "obiekt" i po prostu wywołać .ToString() na wszystko. –
Wyrażenie> –
Witam, używam tego wyrażenia w GroupBy, więc potrzebuję go w powyższym formacie –