0

Breeze.jsでは、inlineCount(http://www.breezejs.com/sites/all/apidocs/classes/EntityQuery.html#method_inlineCount)はodata inlinecountパラメーター(http://www.odata.org/documentation/uri-コンベンション#InlinecountSystemQueryOption

したがって、フィルタリング後の合計カウントが表示されますが、ページングは​​表示されません。

しかし、Breezeまたはodataのいずれかに、単一のbreezeクエリでフィルタリングせずに完全なカウントを取得する「インライン」方法はありますか?つまり、指定されたフィルタリングなしで返されたすべてのレコードの数。私はこれに対して別のクエリを実行できることを知っていますが、単一の操作でそれを実行する方法を望んでいました。

これがばかげた質問である場合はお詫びします。私はまだodataとBreezeに慣れています。私が尋ねる理由は、datatables.netを使用していて、合計数、フィルター処理された数、レコード数の両方を期待しているため、次のようなものを表示できます。

Showing 1 to 10 of 48 entries (filtered from 148 total entries)
4

1 に答える 1

1

単一のクエリでこれを行う簡単な方法を思い付くことができません。

私があなたの質問を理解しているなら、あなたはあなたが提出するクエリごとに基本的に3つのカウントが欲しいです

  1. 実際に返されたクエリ結果の数-('results.length'から簡単に取得できます)
  2. スキップまたはテイクなしで返されたクエリ結果の数(クエリの「.inlinecount()」メソッドを介して取得)。
  3. フィルタ、スキップ、またはテイクなしで返されたクエリ結果の数。つまり、「リソース」全体の数です。(これは、個別のクエリなしでは困難です)。

これが正しければ、2つのクエリを実行することに固執していると思います。1つは「リソース」全体のカウントを取得するため(つまり、上記の#3)、もう1つは#1と#2の「inlinecount」メソッドを使用するためです。

于 2013-03-21T23:02:55.470 に答える