À l'aide de entity framework pour ajouter des entités existantes pour une collection sur une entité nouvellement créée
Je suis en utilisant Entity framework pour créer un nouvel ordre. La commande contient un ensemble de contacts, une relation plusieurs-à-plusieurs. Je veux ajouter une référence à un contact existant sur le bon de commande sur la création de l'ordre. À la fois de l'Ordre et de communiquer avec une Entité Objets.
Order order = new Order();
//set details on order
Contact contact = new Contact();
EntityKey contactKey =
new EntityKey("OrderDetails.Contact",
"contact_id", contact.Key.Id);
contact.EntityKey = contactKey;
contact.contact_id = contact.Key.Id;
order.Contact.Attach(contact); //throws an exception!
OrderDetails ordTable = new OrderDetails();
ordTable.AddToOrder(order);
int result = orgTable.SaveChanges();
Quand je vais joindre cette exception est levée:
"Joindre n'est pas une opération valide lorsque la source de l'objet associé à cette fin est un ajout, de la suppression ou de l'état détaché. Les objets chargés à l'aide de la NoTracking option fusion sont toujours détachés."
Je sais que je suis probablement raté une étape ou pas de bien comprendre comment le cadre de l'entité gère plusieurs-à-plusieurs liens.
OriginalL'auteur kirkmcpherson | 2009-01-02
Vous devez vous connecter pour publier un commentaire.
"Joindre" n'est pas autorisé parce que vous n'avez pas enregistré la commande encore. Appelant "Ajouter" raconte Cadre de l'Entité que vous souhaitez insérer un nouveau contact. Donc, vous êtes de gauche avec une seule option. Vous devez charger le contact.
Voici le moyen le plus rapide pour faire ça:
Génial! Oui, ce qu'il a dit.
OriginalL'auteur Michael L Perry
Si l'Ordre a une propriété de Contact, alors vous pouvez faire:
Je suggère de faire le bien appelé Contacts plutôt que de Contact, cependant.
OriginalL'auteur Craig Stuntz