0

タイトルが示すように、SODA クエリで空のコレクションをチェックする方法はありますか?

コレクション フィールドが null に設定されているかどうかを確認し、コレクション要素のプロパティ値を確認できますが、コレクションに要素がないかどうかを確認する方法がわかりません。

どんな助けでも大歓迎です:)


編集 1:ネイティブ クエリまたは LINQ を使用するように切り替えることにより、db4o フィルタリングの外でクエリを実行する方法を知っています。または、評価を使用しているコレクションのカウントをチェックするときに発生する同等のことを行います。

私たちのシナリオでは実際にパフォーマンスに影響を与えるため、そこにあったネイティブ クエリによって引き起こされるアクティベーションを実際に回避しようとしています。

4

2 に答える 2

2

解決策を探したり、チェックとしてカウントまたはサイズを使用してオプションを試したりすることはできませんでした。それをバックアップするためにいくつかの焦点を絞った統合テストでさまざまなオプションを試した後、私はそのトリックを行うものを見つけました:

List 型のフィールド _list があるとします。

...
query.Descend("_list").Constrain(typeof(Item)).Not();
...

リストにアイテムがないレコードのみを効果的に返します。アイテム タイプのアイテムを持たないというチェックに合格するのはこれらのレコードのみであるためです。_list が null または空のリストの場合、両方のケースで機能します。

于 2011-03-06T06:55:36.453 に答える
0

注: db40 を使用する考えはありません。これは純粋に検索に基づいています

こちらSize方法をご覧ください。IObjectSet

編集:「db40 SODAクエリ」の検索に基づいて、IObjectSet戻り値として使用する例を見たquery.Executeので、上記が役立つ可能性があります。

于 2011-03-05T19:46:33.903 に答える