IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Silverlight Discussion :

Context SubmitChanges error


Sujet :

Silverlight

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 8
    Par défaut Context SubmitChanges error
    Salut à tous,

    Voici la structure de mon projet,

    j'ai une page avec un grid, un bouton qui fait apparaitre une fenêtre enfant pour ajouter un nouvel article dans la base de données.
    Lorsque je remplis mon formulaire et que je le submit, j'ai l'erreur suivante :

    Entity 'Article : null' is currently being edited and has uncommitted changes.
    A call to BeginEdit must be followed by a call to EndEdit or CancelEdit before
    changes can be submitted.
    Voici le code de ma fenêtre enfant (ArticlesChild.xaml) :

    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
     
    public ArticlesChild()
            {
                InitializeComponent();
                NewArticle = new Article();
                NewArticleForm.CurrentItem = NewArticle;
                NewArticleForm.BeginEdit();
     
            }
     
     
            private void OKButton_Click(object sender, RoutedEventArgs e)
            {
                NewArticleForm.CommitEdit();
                this.DialogResult = true;
            }
    Et le code de ma fenêtre parent (ListeArticles.xaml) :

    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
     
    private void NewArticleButton_Click(object sender, RoutedEventArgs e)
            {
                ArticlesChild newArt = new ArticlesChild();
                newArt.Closed += new EventHandler(newArt_closed);
                newArt.Show();
            }
     
            void newArt_closed(object sender, EventArgs e)
            {
                ArticlesChild art = (ArticlesChild)sender;
                if(art.NewArticle !=null)
                {
                    SVDomainContext  ctx = (SVDomainContext)myData.DomainContext;
                    ctx.Articles.Add(art.NewArticle);
                    ctx.SubmitChanges();
                }
            }
    Et voilà ce que ça donne du côté de mon Domain service (SVDomainService.cs):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     public void InsertArticle(Article article)
            {
                article.pdf = null;
                article.etat = 1;
                this.ObjectContext.Articles.AddObject(article);
            }

    Avez-vous la moindre idée d'ou cela peut venir?

    Merci d'avance,
    bsct

  2. #2
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Ca fait quoi NewArticleForm.CommitEdit(); ?
    Pourquoi tu appelles pas EndEdit à la place ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 8
    Par défaut
    Visiblement il me manque une référence d'assembly pour pouvoir appeller EndEdit à la place de CommitEdit. Une idée de ce qu'il me manque?

    J'ai mis CommitEdit parceque j'ai suivi le tuto sur le site silverlight.net qui traitait exactement le même sujet que moi.

    Quelle est la différence entre CommitEdit et EndEdit?

  4. #4
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Ben normalement ta classe est censée implémentée IEditableObject qui contient 3 méthodes : BeginEdit, EndEdit, CancelEdit.

    Regarde si ta classe l'implémente.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 8
    Par défaut
    Le code behind associé à ma fenêtre hérite uniquement de ChildWindow

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public partial class ArticlesChild : ChildWindow
    Mais le CommitEdit se fait correctement j'ai l'impression vu que sur ma page parent en mode débug mon art.NewArticle a les bonnes valeurs



    Le soucis se situe vraiment au moment du SubmitChanges, à noter que j'ai des updates qui marchent très bien, mais qui ne font pas appel à la fenêtre enfant.

  6. #6
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Hum pardon j'avais mal vu : NewArticleForm c'est un DataForm c'est ça ?

    Est-ce que ta classe Article implémente IEditableObject ?

Discussions similaires

  1. Error on SubmitChanges
    Par biscotto dans le forum Silverlight
    Réponses: 5
    Dernier message: 23/08/2010, 11h30
  2. Réponses: 6
    Dernier message: 22/02/2009, 10h41
  3. Fatal error: Using $this when not in object context
    Par lavande dans le forum Langage
    Réponses: 2
    Dernier message: 02/10/2008, 20h17
  4. Réponses: 18
    Dernier message: 06/04/2008, 20h57
  5. [FOP] [ERROR] non-static variable this cannot be referenced from a static context
    Par cash3000 dans le forum API standards et tierces
    Réponses: 8
    Dernier message: 05/05/2006, 16h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo