質問

個人エンティティがあるデータモデルがあります。これには、情報を含む辞書の配列である変換可能な属性があります。モデルはそれよりもはるかに大きいですが、これは私が問題を抱えている部分です。これは古い開発者によってこのように設計されており、プロジェクトを引き継ぐ際に、これを100%コアデータに移行する必要があります。

したがって、私がする必要があるのは、新しいエンティティを作成し、その辞書からの情報を使用してそのエンティティの新しいインスタンスを作成して、その辞書からの新しいインスタンスを作成し、新しいエンティティを作成することです。この新しいエンティティのカスタム移行を設定するためにnsentitymigrationPolicyを使用できると思いましたが、コアデータ移行は、Xの数のソースエンティティがXの数の目的地エンティティに変換されることを期待しているようです。私は技術的には現在0のソースエンティティを持っているので(コアデータは実際には何も知らないアレイにあるため)、プロセス中に移行が新しいエンティティを作成する方法がわかりません。

移行手順のどこで、どこで、私が達成しようとしていることをするための最良の方法は何ですか?私は常に過去に軽量の移行を使用していたので、これはカスタム移行の私の最初の冒険です。

役に立ちましたか?

解決

データモデル(スキーマ)の感覚を持つのに役立ちます - しかし、あなたの個人エンティティが今やお気に入りのレストランの家の住所とリストを保持していると仮定しましょう。さらに、次の関係とともに、新しいエンティティアドレスとレストランを作成すると仮定しましょう。

人には1つの住所があるため、「ホームズドレス」と呼ばれる住所から人からの関係があります。多くの人が同じ住所に住むことができるため、住所から人への逆の関係があります。

人はレストランとの多い関係(レストランと呼ばれます)を持っています。レストランは、人との関係があることもあります(ただし、これは双方向性が実際には意味をなさない場合の1つかもしれません)。

とにかく、ポイントは、あなたのPersontoperson nsentityMigrationPolicyサブクラスに加えて、PersonToAddressとPersonTorestaurantも持っているということです。これらは、古いデータを展開し、それを使用して新しいアドレスとレストランのオブジェクトをインスタンス化して初期化する場所になります。

もちろん、他にも複雑な問題がたくさんあります。たとえば、あなたはそれが好きなすべての人のために同じレストランの新しいインスタンスを作成したくないでしょう。新しく作成されたレストランを追跡する必要があります。

マッピングを戦略的に注文することをお勧めします - おそらく最初にPersonTopersonで。

Marcus Zarraのコアデータをご覧ください サンプルコード そして多分彼の本を買うことさえあります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top