IDifferencer.CompareGraphs(Object, Object) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Compare deux graphiques (définis ci-dessous) et retourne la différence.
Le résultat de CompareGraphs représente la différence à appliquer à la cible pour obtenir la source. (par exemple, cible + diff => source)
Pour prendre en charge SMO et SFC, l’entrée est laissée en tant que type « objet ». Toutefois, elle autorise uniquement SqlSmoObject ou SfcObject. Cette méthode lève InvalidArgumentException si le type des objets spécifiés n’est pas valide.
Deux graphiques sont dits comparables (c’est-à-dire avoir le même type), s’ils ont la même structure à tous les niveaux, ce qui signifie que chaque nœud a le même type d’enfants et de propriétés. Si les graphiques spécifiés ne sont pas comparables, cette méthode lève InvalidArgumentException.
Lorsqu’un nœud sur chaque graphique a la même identité (représentée par Urn dans SMO et SFC), elle est dite identique. Lorsque deux nœuds identiques ont les mêmes valeurs pour toutes les propriétés, ils sont dits équivalents (ignorer les enfants qu’ils ont).
Pendant la comparaison, ce service examine tous les nœuds pertinents. (La pertinence des nœuds et des propriétés est spécifique au domaine.) Pour chaque paire de nœuds identiques des deux côtés, le service compare toutes les propriétés releventes. Si les nœuds ne sont pas équivalents, un DiffEntry avec DiffType.Updated est ajouté au résultat. Les enfants seront ensuite comparés.
Lorsqu’un enfant apparaît dans la source, mais pas dans la cible, un DiffEntry avec DiffType.Created est ajouté au résultat, de même pour DiffType.Deleted.
La différence guide les enfants (de tous les niveaux) d’un nœud créé ou supprimé. Les entrées enfants sont incluses dans le résultat.
Enfin, chaque paire d’enfants identiques est vérifiée pour l’équivalence.
CompareGraphs() met à l’échelle des graphiques très volumineux et ne conserve pas les graphiques entiers en mémoire si possible. Les applications qui utilisent ce service ne doivent pas avoir de logique qui dépend de l’ordre des résultats, ce qui peut être différent lorsque l’implémentation change à l’avenir pour une optimisation supplémentaire.
L’implémentation actuelle guide l’arborescence à la fin de l’activation. La réinitialisation du résultat IEnumerator peut entraîner une nouvelle marche à pas des graphiques.
Le résultat IDiffgram n’est pas thread-safe.
public Microsoft.SqlServer.Management.Sdk.Differencing.IDiffgram CompareGraphs(object source, object target);
abstract member CompareGraphs : obj * obj -> Microsoft.SqlServer.Management.Sdk.Differencing.IDiffgram
Public Function CompareGraphs (source As Object, target As Object) As IDiffgram
Paramètres
- source
- Object
Nœud racine du graphique source à comparer.
- target
- Object
Nœud racine du graphique cible à comparer.