2009-05-14 5 views
0

j'ai une base de données avec ces deux tablesAsp.net MVC - données LINQ et Hieararchical

ProductCategory  
IDCat 
Name 
Description 


ProductSubCategories 
IDSub 
Name 
IDCat 

Ce sont des tables liées trought idcat.

Comment puis-je faire avec LINQ pour récupérer la liste des catégories et sous-catégories regroupées par catégorie ??

Dans mon PartialView je voudrais créer un menu à la catégorie et sous comme ceci:

Category1 
    SubCategory1 
    SubCategory2 
    SubCategory3 
Category2 
    SubCategory1 
    SubCategory2 
    SubCategory3 
Category3 
    SubCategory1 
+0

Quel fournisseur LINQ utilisez-vous? LINQ à SQL? LINQ aux entités? – Charlino

+0

J'utilise LINQ to SQL –

Répondre

0
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); 
    } 
} 

Modifier pour mettre réponse Voir Format

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

Cela devrait fonctionner (ou être proche), mais j'ai noté la syntaxe testée. Notez que, comme d'autres l'ont indiqué, vos clés primaire et secondaire doivent être configurées correctement pour que cela fonctionne.

0

Si vous configurez votre PK-FK correctement dans DB, LINQ to SQL fera l'association d'objet pour vous. Il y aura donc une propriété dans ProductCategory en tant que EntitySet de ProductSubCategory. La clé est que votre référence DB PK-FK doit être correcte pour que le générateur de code LINQ prenne cela en charge.