私は3つのエンティティオブジェクトを持っています。これらのエンティティの関係はちょっと愛の三角です!コアデータ削除アクションのカスタマイズ
Department <---->> Employee
Company <----->> Employee
は例を設定する(例えば。人事部は、すべての企業に共通している)
Company <<----->> Department
(多くの多く)、
ジョン(employee1)に属しています Jason(従業員2)はIBC Compnayに所属し、Financeで働いています **注:マーケティングはbに共通していますothジョンとジェイソン。私は削除ルーチンを開発したかった
、このよう
deleting
、その会社、私はまた、任意の `他のとび」の一部ではない部門を取り除きたいすべてのEmployees
を削除します。 したがって、私はIBC会社を削除した場合、Jasonを削除する必要があります(私が推測するカスケード経由)。また、財務部門を持つ唯一の会社である場合にのみ財務部門を廃止します。 Finance.company == [zero result]がある場合は、何らかの形でそれを削除する必要があります。
DELETING
DEPARTMENTは前に選択した会社に所属するすべてのits Employees
削除します!会社を想定し がaready選ばれた、私がいただきたいと私はdeparmentを削除する場合は、「、HRは、私も
私の質問がある選択した企業に属し、その部門内のすべての従業員を削除したいと思います言いますWHERE」私は、このような削除ルールを処理する必要があり、これは全体来て、それを処理する方法がわからないイム:必要なすべてを削除するかどうかをチェックし、削除を処理するための最も効率的な方法だろう何
- (BOOL)validateForDelete:(NSError **)error
上記のルールに基づいて、必要があります。
ご了承ください。おかげ
大丈夫、感謝の男は、それを得ました! '[CompanyObject removeDepartment::DepartmentObj] – jasonIM
はこのようなクールな動きがあり、より多くの一つのことを求めることができる;' 部門<--->>従業員は、一から二 – jasonIM
はもっと一つのことを頼むことができ、このようなクールな動きがあります: '[CompanyObject removeDepartment:DepartmentObj]; ' 部門はCompanyと多対多の関係を持っています したがって、[Department removeEmployees]と呼ぶことはできません。この場合、異なる会社の従業員を持つことができるので、FetchRequestと反復だけが出ていますか? 配列{ ([department.employees]の従業員){ if(employee.forCompany === {この会社}) [managedContext:deleteObject:employee]; } ' 私はこれが道です。 – jasonIM