public ISet<TypedDatabaseObject> GetAffectedObjects(IDictionary<TypedDatabaseObject, GraphNode> dbState, Func<TypedDatabaseObject, bool> isBuildItem)
 {
     // Find all database objects that depend on the objects that are about to be scripted.
     // Also recursively find all the objects that depend on those objects.
     var typedObjectComparer = new TypedDatabaseObjectComparer();
     ISet<TypedDatabaseObject> databaseObjectsToRebuild = new HashSet<TypedDatabaseObject>(typedObjectComparer);
     foreach (var s in dbState.Values)
     {
         if (s.Dependencies.Any(isBuildItem)
             && !isBuildItem(s.Value)
             && !databaseObjectsToRebuild.Contains(s.Value))
         {
             databaseObjectsToRebuild.Add(s.Value);
             AddAllReferences(s.Value, dbState, databaseObjectsToRebuild, isBuildItem);
         }
     }
     return databaseObjectsToRebuild;
 }
示例#2
0
        public ISet <TypedDatabaseObject> GetAffectedObjects(IDictionary <TypedDatabaseObject, GraphNode> dbState, Func <TypedDatabaseObject, bool> isBuildItem)
        {
            // Find all database objects that depend on the objects that are about to be scripted.
            // Also recursively find all the objects that depend on those objects.
            var typedObjectComparer = new TypedDatabaseObjectComparer();
            ISet <TypedDatabaseObject> databaseObjectsToRebuild = new HashSet <TypedDatabaseObject>(typedObjectComparer);

            foreach (var s in dbState.Values)
            {
                if (s.Dependencies.Any(isBuildItem) &&
                    !isBuildItem(s.Value) &&
                    !databaseObjectsToRebuild.Contains(s.Value))
                {
                    databaseObjectsToRebuild.Add(s.Value);
                    AddAllReferences(s.Value, dbState, databaseObjectsToRebuild, isBuildItem);
                }
            }
            return(databaseObjectsToRebuild);
        }