0

件名のこの誤りを要約するのはちょっと難しいので、件名の言葉遣いが悪いことをお許しください。

カスタム linq プロバイダーを作成していますが、次の 1 つの方法に固執しています。

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 をラムダに渡す以外に何も考えられません (組み込みの Where メソッドを使用すると思います)が、これは正しいとは思いません。

これを解決する方法はありますか?

4

0 に答える 0