Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在DacFX中,我可以排除针对排除对象的消息吗_C#_Sql Server_Dacpac - Fatal编程技术网

C# 在DacFX中,我可以排除针对排除对象的消息吗

C# 在DacFX中,我可以排除针对排除对象的消息吗,c#,sql-server,dacpac,C#,Sql Server,Dacpac,我正在使用DacFX来比较和创建SQL Server数据库之间的脚本 运行比较后,我检查了更改,并排除了一些由于内部功能而引起的更改 排除完对象后,我运行SchemaComparisonResult.GetErrors(),并打印出警告和错误 有些错误是针对被排除的对象的,我不想显示它们,因为它们不再相关 有没有一种方法可以做到这一点,而不必检查消息的内容,因为消息可能会有所不同,并且我无法引用代码中的所有内容 编辑: 我试着用两种方法排除: 运行前比较: Lis

我正在使用DacFX来比较和创建SQL Server数据库之间的脚本

运行比较后,我检查了更改,并排除了一些由于内部功能而引起的更改

排除完对象后,我运行
SchemaComparisonResult.GetErrors()
,并打印出警告和错误

有些错误是针对被排除的对象的,我不想显示它们,因为它们不再相关

有没有一种方法可以做到这一点,而不必检查消息的内容,因为消息可能会有所不同,并且我无法引用代码中的所有内容

编辑:

我试着用两种方法排除:

运行前比较:

                List<TSqlObject> sourceModel = TSqlModel.LoadFromDatabase(sourceConnectionStringBuilder.ConnectionString).GetObjects(DacQueryScopes.UserDefined).ToList();
                List<TSqlObject> targetModel = TSqlModel.LoadFromDatabase(targetConnectionStringBuilder.ConnectionString).GetObjects(DacQueryScopes.UserDefined).ToList();
                TSqlObject sourceObject;
                TSqlObject targetObject;
                foreach (var exclude in preExcludeProp)
                {
                    sourceObject = sourceModel.FirstOrDefault(o => string.Join(".", o.Name.Parts) == exclude.ToString());
                    targetObject = targetModel.FirstOrDefault(o => string.Join(".", o.Name.Parts) == exclude.ToString());
                    if (sourceObject != null)
                    {
                        comparison.ExcludedSourceObjects.Add(new SchemaComparisonExcludedObjectId(sourceObject.ObjectType, new ObjectIdentifier(sourceObject.Name.Parts.ToArray())));
                    }
                    if (targetObject != null)
                    {
                        comparison.ExcludedTargetObjects.Add(new SchemaComparisonExcludedObjectId(targetObject.ObjectType, new ObjectIdentifier(targetObject.Name.Parts.ToArray())));
                    }
                }
                foreach (SchemaDifference diff in results.Differences)
                {
                    string name = string.Join(".", (diff.SourceObject ?? diff.TargetObject).Name.Parts);
                    if (postExcludeProp.Contains(name))
                    {
                        results.Exclude(diff);
                    }
                }
两者的结果相同

比较:SchemaComparisonResult=比较。比较()


获取错误:results.GetErrors()

请创建一个快照,说明如何排除和执行架构比较