2010-06-17 14 views
1

Ai-je besoin de sauvegarder les instances d'entité CRM nouvellement créées avant de pouvoir définir des relations avec d'autres instances d'entité crm?MSCRM: Comment créer des entités et définir des relations à l'aide du fournisseur xRM linq

Je suis confronté au problème qui après avoir appelé CrmDataContext.SaveChanges() les entités nouvellement créées sont écrites dans la base de données, mais les relations entre ces instances nouvellement créées sont manquantes dans la base de données.

Qu'est-ce qui me manque? Dois-je appeler CrmDataContext.SaveChanges() chaque fois que je crée une instance d'entité crm que je veux avoir des relations avec d'autres instances d'entité CRM?

Répondre

1

Vous devriez pouvoir définir des relations avec d'autres entités dans une relation 1: N avant de sauvegarder cette entité (c'est-à-dire une recherche).

Si vous souhaitez que votre entité soit référencée par une autre entité, elle doit d'abord être sauvegardée OU vous devez d'abord définir un Guid pour l'entité. Sinon, votre lien ne collera pas.

Lors de la création d'une entité, son ID n'est défini que lorsqu'il est enregistré dans la base de données, sauf si vous l'avez défini manuellement. Si vous le définissez manuellement, il respectera le nouveau Guid que vous lui avez donné et la relation survivra au processus d'épargne.

Si vous tentez de sauvegarder une entité individuellement, vous devez vous assurer que vous avez sauvegardé toutes les entités auxquelles elle se réfère avant de sauvegarder cette entité, sinon elle n'aura pas de lien.