Précédent   Forum du club des développeurs et IT Pro > Dotnet > Accès aux données > Entity Framework
Entity Framework Forum d'entraide sur le développement avec le modèle d'accès aux données Entity Framework de Microsoft.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 27/02/2013, 14h48   #1
Finality
Rédacteur
 
Homme
Inscription : septembre 2007
Messages : 446
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 : 446
Points : 834
Points : 834
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
Finality est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2013, 03h06   #2
chamamo
Membre éclairé
 
Avatar de chamamo
 
Inscription : juin 2006
Messages : 408
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : juin 2006
Messages : 408
Points : 379
Points : 379
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
chamamo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 22h51.


 
 
 
 
Partenaires

Hébergement Web