private void ProcessTaxonomySkus(TaxonomyInfo ti) { //Must use independent DataContext to conserve memory using (var dc = new AryaDbDataContext(Arguments.ProjectId, Arguments.UserId)) { var node = ItemNode.FromValues(ti.ID, ti.ProjectID, ti.ToString(((AdvancedExportArgs)Arguments).IgnoreT1Taxonomy), ti.NodeName); //var allSkus = from si in dc.SkuInfos // where si.Active && si.TaxonomyID == ti.ID // let sku = si.Sku // where sku.SkuType == Sku.ItemType.Product.ToString() // select sku; var allSkus = ti.GetSkus(_args.ExportCrossListNodes); var skus = ((AdvancedExportArgs)Arguments).GetFilteredSkuList(allSkus).ToList(); skus.AsParallel().ForAll(sku => ProcessSku(node, sku)); } }