Bonsoir à tous,
J'ai utilisé 2 procédures dans l'ordre, une pour la suppression et une pour l'insertion. La suppression dont voici le code marche sans problème.
Quant à l'insertion dont le code est le suivant:
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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 public static void SupprimerPax(Passager oPax) { var req = (from Pax in ContexteDAO.ContexteDonnees.Passagers where Pax.CodePax == oPax.CodePax orderby Pax.IdentifiantVol select Pax).ToList(); foreach (var MyPax in req) { if ((MyPax.CodePax == oPax.CodePax) == true) { if ((MyPax.EntityState == EntityState.Detached) == true) { ContexteDAO.ContexteDonnees.ObjectStateManager.GetObjectStateEntry(MyPax); ContexteDAO.ContexteDonnees.ObjectStateManager.ChangeObjectState("Passager", EntityState.Added); ContexteDAO.ContexteDonnees.Passagers.DeleteObject(oPax); ContexteDAO.Enregistrer(); } else { ContexteDAO.ContexteDonnees.Passagers.Attach(MyPax); ContexteDAO.ContexteDonnees.Passagers.DeleteObject(MyPax); ContexteDAO.Enregistrer(); } } } }
Elle fonctionne apparemment jusqu'à la sauvegarde dans la BD. A chaque fois une première insertion est validée, mais lorsque je vérifie du côté de la BD SQL, l'enregistrement ne s'y trouve pas. Et lors d'une 2nde tentative, j'ai ce message d'erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 public static void AjouterPax(Passager oPax) { ContexteDAO.ContexteDonnees.Passagers.AddObject(oPax); ContexteDAO.Enregistrer(); }
J'ai même supprimé la méthode AcceptChanges(), mais ne marche encore.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Les modifications apportées à la base de données ont été validées, mais une erreur s'est produite lors de la mise à jour du contexte de l'objet. ObjectContext est peut-être dans un état incohérent. Message d'exception interne : AcceptChanges ne peut pas continuer, car les valeurs de clés de l'objet sont en conflit avec un autre objet dans ObjectStateManager. Assurez-vous que les valeurs de clés sont uniques avant d'appeler AcceptChanges.
Qui aurait une solution?
Cordialement.
Partager