public CListeObjetsDonnees GetRelations(ISatisfactionBesoin satisfaction) { DateLastAcces = DateTime.Now; CCacheRelation cache = null; CFiltreData filtre; if (!m_dicCaches.TryGetValue(GetKey(satisfaction), out cache)) { filtre = new CFiltreData( CRelationBesoin_Satisfaction.c_champTypeElement + "=@1 and " + CRelationBesoin_Satisfaction.c_champIdElement + "=@2", satisfaction.GetType().ToString(), satisfaction.Id); CListeObjetsDonnees liste = new CListeObjetsDonnees(satisfaction.ContexteDonnee, typeof(CRelationBesoin_Satisfaction), filtre); liste.PreserveChanges = true; SetRelations(satisfaction, liste); return(liste); } filtre = new CFiltreDataImpossible(); if (cache.Ids.Count > 0) { filtre = new CFiltreData(CRelationBesoin_Satisfaction.c_champId + " in (" + cache.IdsPourFiltre + ")"); } else { filtre = new CFiltreDataImpossible(); } CListeObjetsDonnees lstOptim = new CListeObjetsDonnees(satisfaction.ContexteDonnee, typeof(CRelationBesoin_Satisfaction), filtre); lstOptim.PreserveChanges = true; lstOptim.InterditLectureInDB = true; return(lstOptim); }
public void SetRelations(ISatisfactionBesoin satisfaction, CListeObjetsDonnees relations) { CCacheRelation cache = new CCacheRelation(); foreach (CRelationBesoin_Satisfaction rel in relations) { cache.AddRelation(rel); } m_dicCaches[GetKey(satisfaction)] = cache; }
//------------------------------------------------------------------- public void Reset(ISatisfactionBesoin satisfaction) { DateLastAcces = DateTime.Now; CCacheRelation cache = null; if (m_dicCaches.TryGetValue(GetKey(satisfaction), out cache)) { m_dicCaches.Remove(GetKey(satisfaction)); } }