2015-08-04 3 views
1

Я использую SQL SMO построить дерево как дерево управления SQL студии зависимостей в моем приложении окнадерево зависимостей уровня вложенности SQL с помощью SMO

Server srv = new Server(); 
var dependencyWalker = new DependencyWalker(srv); 
var dependencyTree = dependencyWalker.DiscoverDependencies(new Urn[] { srv.Databases["myDB"].Tables["Resource"].Urn }, DependencyType.Parents); 
var dependencyCollection = dependencyWalker.WalkDependencies(dependencyTree); 

dependencyCollection плоский линейный список из 8 пунктов DependencyCollectionNode, я могу» t определяет зависимость уровня вложенного уровня, как показано в дереве зависимостей студии sql management.

enter image description here

Мне нужно, чтобы получить первые элементы уровня (модели, POP, Resource_Log, ResourceType) моего DB объекта (ресурсов)?

ответ

2

Использовать зависимость.

Точка DependencyWalker предназначена для преобразования дерева в линейный список, чтобы объекты (например) могли быть созданы в правильном порядке и не генерировали ошибок. Похоже, вам это не нужно, и вам нужно напрямую обращаться к объекту DependencyTree.

+0

Вы правы, я должен использовать свойства DependencyTreeNode FirstChild и NextSibling, чтобы начать навигацию, проблема в том, что на уровне корня существует множество ссылок на уровне строк, которые требуют сложной логики, чтобы избежать привязки. –

Смежные вопросы