Entity Frameworkを使用しており、オブジェクトに対していくつかのランタイムビルドクエリが必要です。最初から式ツリーを構築するのは大変な作業のようですので、「System.Linq.Dynamic」を使用したいと思います
サンプルを処理して、これを機能させました:
dbModel.As.Where("AStuff.Contains(@0) OR AStuff.Contains(@1)","ac","bc")
しかし、次のように別々に式を作成しようとすると、
Expression<Func<A, bool>> predicateA =
DynamicExpression.ParseLambda<A, bool>(
"AStuff.Contains(@0)",
"ac"
);
Expression<Func<A,bool>> predicateB =
DynamicExpression.ParseLambda<A, bool>(
"AStuff.Contains(@0)",
"bc"
);
dbModel.As.Where("@0(it) OR @1(it)", predicateA, predicateB);
それは例外で爆発します:NotSupportedException >> LINQ式ノードタイプ 'Invoke'はLINQ to Entitiesではサポートされていません。
最初の形式でクエリ全体を作成することは可能かもしれませんが、後者の方が私たちのシナリオではより有用でしょう。それを機能させる方法はありますか?