Как преобразовать выражение linq в двоичное выражение - PullRequest
0 голосов
/ 28 апреля 2019

Я пытался использовать метод GetDynamicQuery из https://github.com/bbraithwaite/RepoWrapper/blob/master/DynamicQuery.cs в моем проекте, также у меня есть абстрактный класс с реализованным методом GetCriteriaList () "Code_1".И я называю это так "Code_2", он отлично работает.

Code_1

public abstract class ListFilterModel<T> where T: EntityBase
    {
        [Display(Name="Name", Order=1)]
        public string name { get; set; }
        public string sort { get; set; }
        public string sortdir { get; set; }

        public virtual IList<Predicate<T>> GetCriteriaList()
        {
            List<Predicate<T>> criteriaList = new List<Predicate<T>>();
            return criteriaList;
        }
    }

Code_2

Expression<Func<T, bool>> filtered = c => filterModel.GetCriteriaList().All(pred => pred(c));

Далее, когда я передаю переменную, отфильтрованную в GetDynamicQuery ().Я получил ошибку в строке

var body =  (BinaryExpression)expression.Body;

Unable to cast object type "System.Linq.Expressions.MethodCallExpressionN" to "System.Linq.Expressions.BinaryExpression".

Как я могу это исправить?

...