Asp.net MVC - LINQ и иерархические данные - PullRequest
0 голосов
/ 14 мая 2009

У меня есть база данных с этими двумя таблицами

ProductCategory    
 IDCat
 Name
 Description


ProductSubCategories
 IDSub
 Name
 IDCat

Эти таблицы связаны с IDCat.

Как я могу сделать с LINQ, чтобы получить список категорий и подкатегорий, сгруппированных по категориям ??

В моем PartialView я хотел бы создать меню с категориями и подкатегориями, например:

Category1
    SubCategory1
    SubCategory2
    SubCategory3
 Category2
    SubCategory1
    SubCategory2
    SubCategory3
 Category3
    SubCategory1

Ответы [ 2 ]

0 голосов
/ 14 мая 2009

Если вы правильно настроили PK-FK в БД, LINQ to SQL выполнит для вас привязку объекта. Поэтому в ProductCategory будет свойство в качестве EntitySet для ProductSubCategory.

Ключ в том, что ваша ссылка DB PK-FK должна быть правильной, чтобы генератор кода LINQ мог ее получить.

0 голосов
/ 14 мая 2009
MyDataContext db=new MyDataContext();

IQueryable<ProductCategory> categories= db.Categories;

foreach (Category c in categories){
  Console.WriteLine (c.Name);
  foreach (ProductSubCategories sub in c.ProductSubCategories){
    Console.Writeline (sub.Name);
  }  
}

Изменить, чтобы поместить ответ в формате просмотра

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

Это должно работать (или быть близко), но у меня есть проверенный синтаксис примечания. Обратите внимание, что, как указали другие, ваш первичный и внешний ключи должны быть настроены правильно, чтобы это работало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...