選択したメイン カテゴリのすべての子カテゴリに含まれるすべての製品を取得するには、どのような方法が最適でしょうか? 約 80 の子カテゴリで 10000 個の製品を取得しようとしていますが、この方法では遅すぎます。助言がありますか?C# と Linq to SQL の使用
//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)))
結果を返すのに約 6 秒かかります