2017-01-30 2 views
0

Я пытаюсь преобразовать параметр выражения, который использует общий тип для другого типа. Довольно просто - у меня есть модели представлений, открытые через контроллеры web-api - и когда требуется поиск (запрос) для объектов домена - мне нужно преобразовать выражение с использованием типов TViewModel в типы TModel.Преобразование выражения с общим типом в общий тип

Что-то вроде этого:

protected static Expression<Func<TModel, bool>> Convert(Expression<Func<TViewModel, bool>> expression) 
    { 
     //This works - but obviously is limited to properties on the TModel = Id. 
     //How do I make this such that I can take all of the expression parameters from the signature 
     //and convert it to an expression of Func<TModel,bool>> 


     var param = Expression.Parameter(typeof(TModel), "p"); 
     var len = Expression.PropertyOrField(param, "Id"); 
     var exp = Expression.Lambda<Func<TModel, bool>>(expression.Body, param); 
     return exp; 
    } 

ответ

Смежные вопросы