1

我正在寻找一种为我的 ASP.NET MVC 应用程序开发通用导航的方法。

为此,我创建了两个表:

类别:ID、名称、描述

CategoryTable : Id, Category [Foreign on table categories], ParentCategory [Foreign on table categories]

我将使用我的辅助表“CategoryTable”,因为像“动作”这样的一个类别可能有两个父类别,比如“Xbox”或“PlayStation”。

第一个问题:这是正确的方法吗?

第二个问题:我不知道如何循环我的表格以便构建导航。每个人都知道,我可以在哪里导航示例或对我有帮助的东西吗?

此致

4

3 回答 3

0

只要有你的两张桌子:

类别

ID
名称
描述

分类链接

Id
CategoryId (Foreign on Category)
ParentCategoryId (Foreign on Categories, 这个可以允许空值)

然后,您可以使用公用表表达式 (CTE)递归检索所有类别。

你最好把它放在一个存储过程中,然后你可以在实体框架中使用类似的东西来调用它:

context.ExecuteSqlCommand("EXEC getNavigation");
于 2013-05-02T10:52:25.867 回答
0

对于这种叶子有多个父亲的树,我有机会在生产中看到的唯一解决方案是使用标签。您可以在“操作”中添加一列,该列可以包含标签列表以及此假期所属的所有父亲。这样,一个动作将有一个父亲,但会通过标签加入许多其他父亲。

于 2013-05-02T12:52:22.597 回答
0

我认为您只能使用一张表来避免连接以满足您的要求。

ParnetId 在没有 Parent 的情况下将具有 null 值

Categories: Id, Name, Description,ParentId (Foreign key on same table)
于 2013-05-02T10:50:33.087 回答