+ Répondre à la discussion
Affichage des résultats 1 à 2 sur 2
  1. #1
    Rédacteur

    Homme Profil pro
    Inscrit en
    septembre 2007
    Messages
    492
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : septembre 2007
    Messages : 492
    Points : 1 027
    Points
    1 027

    Par défaut Plusieurs contextes dans une application - Rafraichissement lors de modifications

    Bonjour tout le monde,

    je reprend actuellement une application existante bien prise de tête. L'application est en WinForms et utilise EF 4.

    Dans certaines fenêtres de cette application, 2 contextes de données cohabitent. Mon problème est le suivant : lorsqu'une donnée est mise à jour dans un contexte (par exemple : nom d'un client), elle n'est pas mise à jour au sein de l'autre contexte.

    Connaissez-vous un moyen de remédier à ce problème ? Un peu comme dans le cas où si j'ajoute une entité dans le context1 elle se retrouve automatiquement dans le context2.

    Merci d'avance

  2. #2
    Membre chevronné Avatar de chamamo
    Profil pro
    Inscrit en
    juin 2006
    Messages
    586
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2006
    Messages : 586
    Points : 701
    Points
    701

    Par défaut

    Dans ton context1 onverride la methode ValidateEntity, la méthode est appelée pour chaque entité insérée, modifiée ou supprimée (lors de la sauvegarde)


    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    protected override DbEntityValidationResult ValidateEntity(DbEntityEntry entityEntry, IDictionary<object, object> items)
            {
                DbEntityValidationResult result = base.ValidateEntity(entityEntry, items);
     
    if(entityEntry.State == EntityState.Added)
    {
    //insérer dans Context2
    }
    else if(entityEntry.State == EntityState.Update)
    {
    //Modifier dans Context2
    }
    Pense à utiliser une transaction pour sauvegader les deux contexts en même temps

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •