5
フィルタ式をODataQueryOptions
から抽出して、ビジネスロジッククラスで使用できるようにしようとしています。ODataフィルタをLINQ式に変換する方法は?
public PageResult<Poco> Get(ODataQueryOptions odataQueryOptions)
{
Expression<Func<Poco, bool>> myExpression = ... // what do i do here?
var result = _myBusinessLogic.Search(myExpression);
return new PageResult<Poco>(result, null, null);
}
私はHQL hereにクエリを翻訳記述のブログを見ていたし、私は(少なくとも私は願って)それは私が何をしようとしているためにやり過ぎだと思います。
私は基本的にフィルタ式をExpression<Func<Poco, bool>>
形式で取得する必要があります。 ApplyTo()
で試してみましたが、それほど得られません。どんな助けもありがたい。
ありがとう、私は似たようなことをやった。 MethodCallExpressionへのキャスト、引数やオペランドの抽出など、フィルタの式をApplyToの結果から外すために必要な外科手術がかなりあるようです。このコードの長期的な安定性はやや心配です。 – boris
私はアプリケーション層(api)にコンテキストを公開していないので、ODataQueryOptionsと関連するクラスを利用して、自分のデータレイヤーにフィルタ、ページネーション、ナビゲーションなどを適用したいと考えています。 理想的には、問い合わせ可能なものに適用できるすべての式を抽出し、それらをパラメータとしてアプリケーションの下位レイヤに渡すことができるようにしたいと考えています。 これまでのオプションはODataQueryOptionsを渡すことですが、これは私のビジネスとデータレイヤーをデータに結合することになります。 GitHubで私を助けてくれるかもしれない例がありますか? – Manuel