6

そうです、答えを見つけることを期待して、この質問をクリーンアップするだけです。

インポートを機能させるために、このブログをフォローしています。

http://www.cimgf.com/2012/05/29/importing-data-made-easy/

JSONがフォームにあるときに、インポートを完全に機能させることができました...

[
    {
        Name: "John Smith",
        Id: 123,
        Company:
        {
            Name: "Apple",
            Id: 1
        }
    }
]

つまり、JSONに実際のオブジェクトが含まれている場合。

インポートは、新しいオブジェクトを作成するのではなく、オブジェクトを見つけて既存のオブジェクトを更新します。

しかし、私が持っているJSONのいくつかはフォーマットを持っています...

[
    {
        Name: "John Smith",
        Id: 123,
        CompanyID: 1
    }
]

そして、私が何をしても、それは重複を作成します。

誰かがこれを機能させるために設定されたマギアレコードuserinfoが何であるかを教えてもらえますか?

4

1 に答える 1

6

ご質問ありがとうございます MagicalRecord のインポート機能は、以前から使用していましたが、正常に使用できました。問題の解決策を得ることができました。

MagicalRecord では、Person には personID を、Company には companyID を使用することが慣例になっていると思います。それは私たちの管理下にあるため、知っておくべき注意事項です。私が間違っている場合は、私を修正してください。エンティティのプロパティからアンダースコアを削除した直後に、クラッシュしなくなりました。

以下のソリューションを完全にテストしました。使用したデモ プロジェクト コードを参照してください。ですから、気軽に質問してください。

Company
-------------
companyID (unique) //Removed underscore from the property
companyName
-------------
persons

Person
-------------
personID (unique) //Removed underscore from the property
firstName
lastName
-------------
company

このフォーマットの場合:

{
        Id: 1,
        FirstName: "John",
        LastName: "Smith"
        Company :
        {
            Id: 123
        }
    }
}

以下は、直接の会社関係の userInfo で提供される必要があります

mappedKeyName : Company(JSON のキーで使用される)

relatedByAttribute : companyID(Company Entity 内の一意のプロパティ名)

このモデルの場合:

{
    Id: 1,
    FirstName: "John",
    LastName: "Smith"
    CompanyId: 123
}

mappedKeyName : CompanyId(JSON のキーで使用される)

relatedByAttribute : companyID(Company Entity 内の一意のプロパティ名)

于 2013-03-23T20:53:02.130 に答える