0

通常、Core Dataに1対多の関係がある場合は、それをデータモデルの関係として設定する必要があることを理解しています。この場合、データの出所と管理のために行うのは困難です。

私は本質的に結合を達成しようとしています。

Aのいくつかの基準を満たしているが、B.codeおよび別の属性の基準も満たしているエンティティAをフェッチしたいと思います。

selectステートメントは

select attributeFromA from A, B where A.code = B.code and B.attrib="foo"

コアデータに関係を作成せずにこれを達成するための合理的な方法はありますか?

4

1 に答える 1

0

私は2つの解決策しか見つけませんでしたが、どちらもあまり良くありません。私が読んだところによると、Core Dataは、複数のエンティティ間に関係がない限り、複数のエンティティに対するクエリをサポートしていません。

  1. とにかく関係を追加します。データはサーバーからのものであるため、これは特に悪い場合があります。サーバーから各テーブルを個別に更新するときに、関係を簡単に維持する方法はありません。データが変更されたときに関係を再作成する必要があります。

  2. コアデータの外部で手動で結合を実行します。上記の場合、目的は、一致するオブジェクト識別子のセット(「コード」)を取得することです。これを行う1つの方法は、個別のクエリを実行してから交差点を取得することです。管理対象オブジェクトではなく、「コード」のみを取得するように各クエリを設定します。

于 2012-09-27T17:33:58.200 に答える