Bonjour,
Je débute avec EF4 et je ne comprend pas très bien comment sauvegarder mes entités. Je suppose que le problème vient plutôt de la gestion du contexte.
Mon cas de figure est le suivant, j'ai 3 tables modélisées avec le designer de VS :
Commande(ID, Numero, ClientID, PieceID)
Piece(ID, Nom)
Client(ID, Nom, Adresse)
+ 2 associations entre Commandes-Pièce et Commande-Client
J'ai une fonction qui permet de rechercher un client dans la bdd en fonction du nom et me retourne ledit client (et la même chose pour une pièce).
Je créer maintenant une nouvelle commande que je veux sauvegarder (clic sur un bouton)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 private void btnSearchClient_Click(object sender, EventArgs e) { using (var context = new Model()) { Client clt = Client.findClient("blabla"); } } private void btnSearchPce_Click(object sender, EventArgs e) { using (var context = new Model()) { Piece pce = Pieces.findPiece(1234); } }
Cependant quand je clique sur le bouton de sauvegarde, j'ai l'erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 private void btnSave_Click(object sender, EventArgs e) { using (var context = new Model()) { Commande c = new Commande(); c.Numero = 123456; c.Client = clt; c.Piece = pce; context.AddToCommande(c); context.SaveChanges(); } }
J'ai bien essayé de détacher mes objets, de les ré-attacher mais ça ne provoque que d'autres erreurs.Impossible de définir la relation entre les deux objets, car ils sont attachés à des objets ObjectContext différents.
Est-ce que quelqu'un aurait une éventuelle piste de solution ?
Merci d'avance
Partager