我尝试在我的项目中使用https://github.com/bbraithwaite/RepoWrapper/blob/master/DynamicQuery.cs中的GetDynamicQuery方法,而且我也有使用实现方法GetCriteriaList()“ Code_1”的抽象类。我这样称呼它为“ Code_2”,效果很好。
代码_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;
}
}
代码_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".
我该如何解决?