2

J'utilise le client Silverlight avec les services de données ado.net sur le framework d'entité.EF insérer des objets connexes

j'ai une entité de contact et une adresse entité qui est liée à un navire de relation clé étrangère ... Un contact peut avoir 1 ou plus, mais une adresse Adresses a toujours besoin d'au moins 1 contacts .. assez basique .. .

j'ai un référentiel pour mes contacts et l'adresse qui a une méthode Ajouter (entité T), ...

Sur mon client j'ai un formulaire permet aux utilisateurs d'ajouter un contact avec une adresse

et je veux enregistrer les deux à la base de données ...

Address a = new Address(); 
a.Street="Street", 
a.City = "City" 
a.Contact = 
new Contact(){ Name="Name",Age="60"} 

_repository.Add(a); 

.... 

Ok je me suis dit que je ne peux pas enregistrer un graphique d'objets liés tout de suite si je l'ai fait quelque chose comme ça

DataBaseEntities.AddToContact(obj2Badded.Contact); 
DataBaseEntities.AddToAddress(obj2Badded); 
DataBaseEntities.SetLink(obj2Badded,"Contact",object2Badded.Contact); 
DataBaseEinties.BeginSaveChanges(...) 

Est-il loin de le faire dans transations comme lorsque le contact est pas à l'adresse ajoutée sera pas non plus être ajouté et vice versa ...

... et tout ce que j'ai essayé ne fonctionne pas ...

ce serait bien si quelqu'un peut me diriger dans la bonne direction sur ce sujet, je Je veux simplement t o ajouter un objet connexe graphique =} ...

Répondre

0

Votre premier exemple devrait fonctionner correctement, les entités associées et tout. Il n'est pas nécessaire d'ajouter des entités associées au contexte séparément, si vous insérez de nouveaux objets pour les deux. Donc, à moins que vous ne nous disiez quel est le problème lorsque vous avez exécuté ce code, il sera difficile de vous aider.

0

J'ai eu un problème similaire et cela a fonctionné pour moi après avoir ajouté quelque chose comme

DatabaseEntities.UpdateObject(obj2Badded); 

juste avant

DatabaseEntities.BeginSavingChanged(); 

Ce n'est pas nécessaire si vous incluez le edmx dans votre projet en utilisation la ObjectContext, mais il est nécessaire si vous créez une référence de service et utilisez le DataServiceContext généré.