private IEnumerable <string> GetCacheDependencies(QueryBase query, IEnumerable entities)
        {
            CacheParameters cacheParameters = Owner.GetCacheParameters();
            var             dependencies    = new List <string>();

            // get the global dependencies
            foreach (CacheKeyDependency ckd in cacheParameters.Dependencies)
            {
                dependencies.Add(ckd.GetCacheKey(Context, Owner, query));
            }

            // get the item dependencies
            foreach (Entity entity in entities)
            {
                dependencies.Add("xrm:dependency:entity:{0}:id={1}".FormatWith(entity.LogicalName, entity.Id));

                foreach (CacheKeyDependency ckd in cacheParameters.ItemDependencies)
                {
                    dependencies.Add(ckd.GetCacheKey(Context, Owner, entity));
                }
            }

            // add other dependencies
            var dependencyCalculator = new CacheDependencyCalculator("xrm:dependency");

            dependencies = dependencies.Concat(dependencyCalculator.GetDependenciesForObject(query)).Distinct().ToList();

            return(dependencies);
        }
        private IEnumerable <string> GetCacheDependencies(Fetch fetch, IEnumerable entities, bool isSingle)
        {
            var dependencyCalculator = new CacheDependencyCalculator("xrm:dependency");

            var dependencies = dependencyCalculator.GetDependenciesForObject(fetch, isSingle).Concat(dependencyCalculator.GetDependenciesForObject(entities, isSingle)).Distinct();

            return(dependencies);
        }