Asp.net mvc Asp.net MVC-LINQ和层次结构数据

Asp.net mvc Asp.net MVC-LINQ和层次结构数据,asp.net-mvc,linq,Asp.net Mvc,Linq,我有一个包含这两个表的数据库 ProductCategory IDCat Name Description ProductSubCategories IDSub Name IDCat 此表与trought IDCat相关 如何使用LINQ检索按类别分组的类别和子类别列表 在我的PartialView中,我想创建一个包含以下类别和子类别的菜单: Category1 SubCategory1 SubCategory2 SubCategory3 Ca

我有一个包含这两个表的数据库

ProductCategory    
 IDCat
 Name
 Description


ProductSubCategories
 IDSub
 Name
 IDCat
此表与trought IDCat相关

如何使用LINQ检索按类别分组的类别和子类别列表

在我的PartialView中,我想创建一个包含以下类别和子类别的菜单:

Category1
    SubCategory1
    SubCategory2
    SubCategory3
 Category2
    SubCategory1
    SubCategory2
    SubCategory3
 Category3
    SubCategory1
MyDataContext db=newmydatacontext();
IQueryable categories=db.categories;
foreach(类别中的c类){
Console.WriteLine(c.Name);
foreach(c.ProductSubCategories中的ProductSubCategories子类){
Console.Writeline(子名称);
}  
}
编辑以将答案置于视图格式中

<% foreach (Category c in Model){ %>
<%= Html.Encode(c.Name) %> <br />
    <% foreach (ProductSubCategories sub in Model.Categories){ %>        
        <%= Html.Encode(sub.Name) %> <br />               
    <% } %>
<%} %>




这应该是可行的(或者很接近),但我已经测试了Notes语法。请注意,正如其他人所指出的,必须正确设置主键和外键才能使其工作。

如果在DB中正确设置PK-FK,LINQ to SQL将为您执行对象关联。因此,ProductCategory中将有一个属性作为ProductSubCategory的EntitySet


关键是您的DB PK-FK ref必须是正确的,LINQ代码生成器才能获取此值。

您使用的是哪种LINQ提供程序?LINQ到SQL?LINQ到实体?
<% foreach (Category c in Model){ %>
<%= Html.Encode(c.Name) %> <br />
    <% foreach (ProductSubCategories sub in Model.Categories){ %>        
        <%= Html.Encode(sub.Name) %> <br />               
    <% } %>
<%} %>