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.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Id_Compte = ((Compte)loadOperation.Entities.First()).Id_Compte;
voici le code

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;
        }
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);
        }
mon souci est que j'ai une erreur

System.InvalidOperationException was unhandled by user code
Message=A SubmitChanges operation is already in progress on this DomainContext.
Savez vous comment je peux faire pour ajouter un compte, recuperer son id et ajouter le user sans avoir cette erreur ?

merci