2013-05-12 2 views
0

продуктаLINQ к SQL подкатегории категории подсчитывать рекурсивный

ID CategoryID Имя ...

Категории ID ParentCategoryID Имя

продукта> CategoryID = внешний ключ

public class NameIDCount 
{ 
    public int ID {get;set;} 
    public string Name { get;set;} 
    public int Count { get;set;} 
} 

public class NameIDCountList 
    { 
     public NameIDCount _Category { get; set; } 
     public List<NameIDCount> _SubCategories { get; set; } 
    } 

Как сделать

Linq Query?

List<NameIDCountList> NameIDCountList = LINQ?

Результат:

<a href="/category/id=1">PC [23]</a> 
    <a href="/category/id=4">NoteBook [2]</a> 
    <a href="/category/id=5">Desktop [21]</a> 
<a href="/category/id=2">Monitor [6]</a> 
    <a href="/category/id=8">LED Monitor [4]</a> 
    <a href="/category/id=9">LCD Monitor [2]</a> 
+0

пытались ли Вы GroupBy имя и использовать агрегат 'count' функцию. – Saravanan

ответ

0

Попробуйте что-то вроде этого

 var nameidlist = new List<NameIDCount> 
     { 
      new NameIDCount{ID=1,Name="PC", Count =1}, 
      new NameIDCount{ID=2,Name="PC", Count =1}, 
      new NameIDCount{ID=3,Name="PC", Count =1}, 
      new NameIDCount{ID=4,Name="Monitor", Count =1} 
     }; 

     var nl = new List<NameIDCount>(); 

     nameidlist.GroupBy(x => x.Name, p => p.ID).ToList().ForEach((y) => 
     { 
      nl.Add(new NameIDCount { Count = y.ToList().Count, Name = y.Key }); 
     }); 
+0

спасибо saravanan, , но выполнил для множественного запроса базы данных – user1439338

+0

, даже если вы используете такой тип запроса linq в EF, проблем не будет, он будет преобразован в SQL до того, как ударит db. Если нет, пожалуйста, объясните проблему производительности, о которой вы сообщали ранее. – Saravanan

+0

http://stackoverflow.com/questions/16509527/linq-to-sql-category-sub-category-count-performans – user1439338

Смежные вопросы