Bonjour,
Voilà,
J'ai deux application client (a et b) qui accède à ma base de donnée par entity framework.
Le soucis quand une des deux application (a) veux modifier la base de donnée, il n'y à pas de synchronisation.
La modification ne se propage pas sur l'autre application (b),
par exemple si l'application (a) veux changer l'adresse d'un client ,
eh bien l'application (b) garde l'ancienne adresse de ce client.
Je suis obliger de mettre un timer pour recharger la base de donnée toutes les 30 secondes.
Comment faire pour qu'il y est synchronisation sans à recharger tous les x secondes ?
Ce qu'il y a dans le timer :
Modification et mise à jour :
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
19
20
21
22
23
24
25
26 if (exectimerReloadBD==false) { exectimerReloadBD = true; CompBDLicenseInterne pd = (CompBDLicenseInterne)ct.Data; if (pd != null) { bool b = TRToken.Reloadbd(); // if (b) // pd.LogCompBDServices.WriteEntry("BD refreshed"); //TRToken.Reloadbd(); } exectimerReloadBD = false; } public static bool Reloadbd() { bool ret = false; if (pfd != null) { ret = true; foreach (var entity in pfd.Context.ChangeTracker.Entries()) { entity.Reload(); } } return ret; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 companySelected.Name = EditCompanyName; companySelected.Address = EditAddress; companySelected.CP = EditCP; companySelected.City = EditCity; companySelected.Country = EditCountry; dataService.Update(companySelected, true);Merci.
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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63 public class DataMethods<Tcontext> : IDataMethods where Tcontext : DbContext, new() { public DataMethods() { Context = new Tcontext(); } public Tcontext Context { get; private set; } public T Delete<T>(T item, bool SaveNow) where T : class { Context.Entry(item).State = EntityState.Deleted; if (SaveNow) { Context.SaveChanges(); } return item; } public void Dispose() { Context.Dispose(); } public T Insert<T>(T item, bool SaveNow) where T : class { Context.Entry(item).State = EntityState.Added; if (SaveNow) { Context.SaveChanges(); } return item; } public int Save() { int r = 0; try { r = Context.SaveChanges(); } catch(Exception ee) { int a = 4; a = 5; } return r; } public IEnumerable<T> Select<T>() where T : class { return Context.Set<T>(); } public T Update<T>(T item, bool SaveNow) where T : class { Context.Entry(item).State = EntityState.Modified; if (SaveNow) { Context.SaveChanges(); } return item; } }
Partager