//---------------------------------------------------------------------------------
        public void FillInventaireNonRecursif(object obj, CInventaire inventaire)
        {
            CObjetDonnee objetDonnee = obj as CObjetDonnee;

            if (objetDonnee != null)
            {
                CStructureTable structure = CStructureTable.GetStructure(objetDonnee.GetType());
                if ((m_mode & EModeInventaireObjetDonneeLies.TousLesFils) != EModeInventaireObjetDonneeLies.Aucuns)
                {
                    foreach (CInfoRelation relation in structure.RelationsFilles)
                    {
                        if (relation.Composition || (m_mode & EModeInventaireObjetDonneeLies.FilsCompositions) != EModeInventaireObjetDonneeLies.FilsCompositions)
                        {
                            CListeObjetsDonnees lst = objetDonnee.GetDependancesListe(relation.TableFille, relation.ChampsFille);
                            foreach (CObjetDonnee fille in lst)
                            {
                                inventaire.AddObject(fille);
                            }
                        }
                    }
                }
                if ((m_mode & EModeInventaireObjetDonneeLies.Parents) == EModeInventaireObjetDonneeLies.Parents)
                {
                    foreach (CInfoRelation relation in structure.RelationsParentes)
                    {
                        CObjetDonnee parent = objetDonnee.GetParent(relation.ChampsFille, CContexteDonnee.GetTypeForTable(relation.TableParente));
                        if (parent != null)
                        {
                            inventaire.AddObject(parent);
                        }
                    }
                }
                foreach (IFournisseurInventaireObjetDonneeLies fournisseur in m_listeFournisseursSupplementaires)
                {
                    fournisseur.FillInventaireNonRecursif(objetDonnee, inventaire, m_mode);
                }
            }
            else
            {
                if (obj is IUtilisateurObjetsDonnee)
                {
                    CResultAErreur result = ((IUtilisateurObjetsDonnee)obj).GetObjetsUtilises(m_contexte);
                    if (result)
                    {
                        foreach (CObjetDonnee objet in (CObjetDonnee[])result.Data)
                        {
                            inventaire.AddObject(objet);
                        }
                    }
                }
            }
        }
        //----------------------------------------------------------------------------
        public List <CReferenceObjetDependant> GetDependances(CEntitiesManager manager, CObjetDonnee objet)
        {
            List <CReferenceObjetDependant> lst = new List <CReferenceObjetDependant>();

            if (objet == null)
            {
                return(lst);
            }
            CStructureTable structure = CStructureTable.GetStructure(objet.GetType());

            foreach (CInfoRelation relation in structure.RelationsParentes)
            {
                Type tpParent = CContexteDonnee.GetTypeForTable(relation.TableParente);
                if (manager.ConfigurationRecherche.IsIgnore(tpParent))
                {
                    return(lst);
                }
                CObjetDonnee parent          = objet.GetParent(relation.ChampsFille, tpParent);
                bool         bHasUniversalId = tpParent.GetCustomAttribute <NoIdUniverselAttribute>(true) == null;
                string       strNomProp      = relation.NomConvivial;
                if (strNomProp.Length == 0)
                {
                    strNomProp = DynamicClassAttribute.GetNomConvivial(tpParent);
                }
                if (parent != null)
                {
                    if (bHasUniversalId)
                    {
                        lst.Add(new CReferenceObjetDependant(strNomProp, tpParent, parent.DbKey));
                    }
                    else
                    {
                        lst.Add(new CReferenceObjetDependant(strNomProp, tpParent,
                                                             parent.GetValeursCles()));
                    }
                }
            }
            return(lst);
        }