1

假设我们有一个 Menu 类,它具有 SubMenus(这是相同类型的 Menu,因此也可以有 SubMenus 和 Items)和 Items(具有不同类型),我们将它们存储在两个表中(一个用于 Menus,一个用于 Items) . 有没有办法使用 LINQ to SQL 加载菜单类的完整图形(所有子菜单和项目)?

4

1 回答 1

0

如果您在 SQL 中正确定义了关系,LINQToSQL 应该通过对菜单的单个查询为您返回所有菜单/项目。但是,这不会让它重新用作图形,而是用作菜单的枚举(带有相关的菜单和项目)。您需要遍历此枚举并自行构建图形。

另一方面,您可能可以执行以下操作:

var roots = db.Menus.Where( m => !m.SubMenus.Count == 0 );

然后,roots将是基本菜单的集合。如果您不打算对其执行任何图形分析算法,而只是打算从上到下遍历它以构造 GUI 组件,这可能就足够了。

于 2009-04-11T13:23:39.037 回答