C# 使用SMO的嵌套级SQL依赖关系树
我正在使用SQLSMO在我的windows应用程序中构建类似于SQLManagementStudio依赖关系树的树C# 使用SMO的嵌套级SQL依赖关系树,c#,sql-server,winforms,smo,C#,Sql Server,Winforms,Smo,我正在使用SQLSMO在我的windows应用程序中构建类似于SQLManagementStudio依赖关系树的树 Server srv = new Server(); var dependencyWalker = new DependencyWalker(srv); var dependencyTree = dependencyWalker.DiscoverDependencies(new Urn[] { srv.Databases["myDB"].Tables["Resource"].Urn
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项组成的平面线性列表,我无法计算任何嵌套级别的依赖项,如sql management studio依赖项树中所示
我需要获取我的DB对象(资源)的第一级项目(模型、POP、资源日志、资源类型)?使用dependencyTree
DependencyWalker的要点是将树转换为线性列表,以便(例如)能够以正确的顺序创建对象,而不会产生错误。看起来您不需要这个,您应该直接处理DependencyTree对象。您是对的,我必须使用DependencyTreeNode FirstChild和NextSibling属性来启动导航,问题是在叶级到根级有许多循环引用,绑定时需要避免复杂的逻辑。