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

Entity Framework Discussion :

Problème de sauvegarde d'entités


Sujet :

Entity Framework

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Problème de sauvegarde d'entités
    Bonjour,
    Je développe une application en WPF, en suivant le patterne MVVM et j'utilise l'Entity Framework sous .net 3.5
    Cette application comporte un espèce de MDI sous la forme d'un TabControl où plusieurs fiches client peuvent être ouvertes en même temps par exemple donc plusieurs instance d'un ViewModel.
    J'utilise une seule instance de mon Model d'entités afin de faciliter les échanges entre les différents ViewModels. Mes modèles Entity Framework sont
    directement utilisés pour le binding (pour leurs propriétés de navigation).

    Je me confronte actuellement à un problème qui est le suivant :
    Je reprend mon exemple, il y a deux onglet ouverts.
    Mon client A est correctement renseigné dans mon interface par l'utilisateur.
    Mon client B lui par contre n'est pas renseigné, des contraintes d'intégrités ne sont pas respectées (l'utilisateur n'a pas renseigné la langue du client par exemple dans une combobox)
    Si je veux sauvegarder mon client A, je ne peux pas car le client B est invalide et dans le même contexte.

    Ma question est la suivante, comment gérer si oui ou non une ou des entités peuvent être sauvegarder. En d'autres termes, comment empêcher qu'une entité non validée soit prises en compte lors de l'appel à la méthode SaveChanges() de mon contexte. Ou le cas échéant, comment sauvegarder une seule entité d'un contexte.

  2. #2
    Membre habitué Avatar de wil4linux
    Inscrit en
    Février 2005
    Messages
    205
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2005
    Messages : 205
    Points : 174
    Points
    174
    Par défaut
    Bonne question je cherche exactement la même chose, comment éviter de mettre à jour toutes les entités modifiées.

    Il me semble que c'est possible en gérant plusieurs contextes, par exemple en déclarant un dans chaque vue.

    J'ai cru comprendre que l'utilisation du contexte ne devait pas se faire sous la forme d'un singleton global à l'application.

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur / architecte
    Inscrit en
    Juillet 2009
    Messages
    473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur / architecte

    Informations forums :
    Inscription : Juillet 2009
    Messages : 473
    Points : 674
    Points
    674
    Par défaut
    je ne connais pas al réponse à ta première question.

    Mais pour la deuxième:
    comment empêcher qu'une entité non validée soit prises en compte lors de l'appel à la méthode SaveChanges() de mon contexte
    je pense que c'est ça que tu cherches:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonContext.Detach(ClientB);
    Puis plus loin si on veut le rattacher au contexte:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonContext.Attach(ClientB);

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Petite mise à jour.
    Le contexte unique était une erreur, en créant un contexte par ViewModel je m'en sors bien mieux. Il suffit de barricader les vues pour que l'édition de deux objets ne soient pas possible en même temps sur une seule vue, du moins pas tant que l'objet n'est pas valide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [FLASH MX2004] Problème de sauvegarde.
    Par mooky dans le forum Flash
    Réponses: 1
    Dernier message: 16/01/2006, 20h06
  2. [Hibernate] problème de sauvegarde
    Par ultimax dans le forum Hibernate
    Réponses: 2
    Dernier message: 22/12/2005, 14h33
  3. Problème de sauvegarde de bases de données
    Par Gwipi dans le forum Administration
    Réponses: 2
    Dernier message: 09/09/2005, 08h30
  4. [PDE] Problème pour sauvegarder une modif dans un éditeur
    Par simsky dans le forum Eclipse Java
    Réponses: 11
    Dernier message: 11/08/2005, 15h05
  5. Problème de sauvegarde des locales
    Par PANAYE Nicolas dans le forum XMLRAD
    Réponses: 1
    Dernier message: 04/08/2005, 09h51

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