很难在主题中总结这个错误,所以请原谅主题的不良措辞。
我正在编写一个自定义linq提供程序,我坚持使用一种方法:
public static class CustomLinqMethods
{
public static IQueryable<T> Where<T>(this IQueryable<T> source, BinaryExpression exp)
{
var methodInfo = ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(T));
return source.SearchProvider.CreateSearch<T>(Expression.Call(null, methodInfo, source.Expression, exp));
}
}
我还有一些其他方法可以正常工作,但是这个方法会抛出一个ArgumentException,表示
“类型'System.Boolean'的表达式不能用于方法”
的'System.Linq.Expressions.BinaryExpression'类型的参数我理解错误是说BinaryExpression的类型是System.Boolean因此BinaryExpression是错误的类型,但我不知道我到底做了什么?我希望我可以说我已经尝试了一些东西,但除了将我的BinaryExpression传递给lambda(我会使用内置的Where方法)之外我真的想不出任何其他东西,但我不认为这是正确的。< / p>
任何想法如何解决这个问题?