Bonjour,
j'ai une classe Compte, une classe Utilisateur, ces 2 classes sont dans mon DomainContext.
J'ai une page qui me permet d'ajouter un utilisateur. Ce que je souhaite faire lors de l'ajout d'un nouvel utilisateur. C'est ajouter un compte, récupérer l'id du compte (auto increment sur SQL Server), et l'ajouter à mon utilisateur.
Pour retrouver l'id du compte créé, je peux le faire par linq grâce au libelle du compte qui est unique.
voici le code
Code : Sélectionner tout - Visualiser dans une fenêtre à part Id_Compte = ((Compte)loadOperation.Entities.First()).Id_Compte;
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 private void AjouterUtilisateur() { //Création d'un compte Compte compteUtilisateur = new Compte(); .... referentiel.Comptes.Add(compteUtilisateur); //Ajout du compte dans la Bdd referentiel.SubmitChanges(Ajout_Compte_Completed, null); //Création de l'utilisateur this.Utilisateur.Avatar_Utilisateur = String.Empty; ...... this.Utilisateur.Id_Compte_Utilisateur = Id_Compte; referentiel.Utilisateurs.Add(this.Utilisateur); //SubmitChanges avec evenement bien passe referentiel.SubmitChanges(Ajout_Utilisateur_Completed, null); }
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 private void Ajout_Compte_Completed(SubmitOperation submitOperation) { if (submitOperation.HasError) { MessageBox.Show(submitOperation.Error.Message); submitOperation.MarkErrorAsHandled(); } else { //Je recupere l'id du compte associé au libelle referentiel.Load<Compte>(referentiel.GetCompteQuery().Where(cpt => cpt.Libelle_Compte == this.Libelle_Compte), Chargement_Compte_Completed, null); } } private void Chargement_Compte_Completed(LoadOperation loadOperation) { if (loadOperation.HasError) { MessageBox.Show(loadOperation.Error.Message); loadOperation.MarkErrorAsHandled(); } else Id_Compte = ((Compte)loadOperation.Entities.First()).Id_Compte; }mon souci est que j'ai une erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 private void Ajout_Utilisateur_Completed(SubmitOperation submitOperation) { if (submitOperation.HasError) { MessageBox.Show(submitOperation.Error.Message); submitOperation.MarkErrorAsHandled(); } else AppMessage.UpdatePageWithUtilisateur.Send(new Uri("Home", UriKind.Relative), this.Utilisateur); }
Savez vous comment je peux faire pour ajouter un compte, recuperer son id et ajouter le user sans avoir cette erreur ?System.InvalidOperationException was unhandled by user code
Message=A SubmitChanges operation is already in progress on this DomainContext.
merci
Partager