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

    Homme Profil pro
    Inscrit en
    septembre 2007
    Messages
    489
    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 : 489
    Points : 1 026
    Points
    1 026

    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 Mourad CHAMA
    Inscrit en
    juin 2006
    Messages
    586
    Détails du profil
    Informations personnelles :
    Nom : Mourad CHAMA
    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
  •