Tôi muốn CONCAT hai biểu cho sự biểu thứcLINQ Chuyển đổi biểu thức/concat từ Int để chuỗi
Expression<Func<T, string>>
Vì vậy, tôi đã tạo ra biểu belwo đang hoạt động tốt với nhiều loại chuỗi mà thôi, Nếu tôi nhận được memberExpression như Int32 hoặc DateTime ném ngoại lệ
Biểu hiện của loại 'System.Int32' không thể được sử dụng cho thông số của loại 'System.String' của phương pháp 'System.String concat (System.String, System.String)'
Nếu tôi chuyển đổi biểu thức thành
var conversion = Expression.Convert(memberExpression, typeof (string));
nhận Không có toán tử cưỡng bức nào được xác định giữa các loại 'System.Int32' và 'System.String'.
Xin hãy giúp tôi để giải quyết
Mã
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);
Tại sao không thay đổi chữ ký phương thức của bạn để thực hiện 'đối tượng' và chỉ cần gọi .ToString() trên mọi thứ. –
Expression> –
Xin chào, tôi đang sử dụng biểu thức này trong GroupBy, vì vậy tôi cần ở định dạng trên –