Jaki byłby najlepszy sposób uzyskania wszystkich produktów we wszystkich kategoriach podrzędnych wybranej kategorii głównej? Próbujesz uzyskać 10000 produktów w około 80 kategoriach dzieci, ale ta metoda jest zbyt powolna. Jakieś sugestie? przy użyciu C# i LINQ to SQLLinq do SQL C# Uzyskaj produkty we wszystkich kategoriach dziecko/podrzędny Kategorie zbyt wolne
//list for the child categories
private List<int> catsChildList = new List<int>();
GetChildCats(123);
//get all the child categories of main category '123'
private void GetChildCats(int _parentCat)
{
var cats = (from c in db2.tbl_cart_categories
where c.ParentID == _parentCat
select new { c.CategoryID });
if (cats.Count() > 0)
{
foreach (var cat in cats)
{
int _cat = Convert.ToInt32(cat.CategoryID);
catsChildList.Add(_cat);
GetChildCats(_cat);
}
}
}
//Get the products
var products = (from p in db2.products_infos
where p.IsEnabled == true
group p by p.ProdID
into g where g.Any(x => catsChildList.Contains(Convert.ToInt32(x.CategoryID)))
trwa około 6 sekund, aby powrócić wyników
Czy masz odpowiednie indeksy? to jest struktura encji lub linq do sql? –
Czy możesz zmienić CategoryID z varchar na int? –
tak Indeksy tam są. To Linq do SQL. CategoryID jest int, ale akceptuje wartość null. Główne kategorie ID rodzica jest nieważne Pozdrawiam – vts