2014-05-26 3 views
0

У меня есть запрос linq to sql, который я пытаюсь оптимизировать. Я отследил основную проблему, связанную с количеством запросов sql, вызываемых в базу данных. Из-за вложенности запроса - он огромен! (попробуйте 14 000 строк в профилировщике SQL). Ой!Оптимизация вложенного Linq в SQL Query

Я ищу загружаемую загрузку и используя LoadWith - но, как представляется, существует ограничение на вложенные запросы? (Ошибка: System.InvalidOperationException: Циклы не разрешены в LoadOptions LoadWith type graph.). Любые идеи о том, как заставить Linq to SQL загружать некоторые связанные данные и иметь меньше удалений db? благодаря!

 List<EBCFPS> ebcfpsList = (from c in v3 
                    group c by c.CId into g 
                    select new EBCFPS() 
                    { 
                     CId = g.First().CId, 
                     CName = g.First().CName, 
                     CType = g.First().CType, 
                     SortOrder = g.First().SortOrder == null ? 0 : (int)g.First().SortOrder, 
                     EsGroup = (from q in g 
                         select new EFPS() 
                         { 
                          EId = (int)q.EId, 
                          EName = q.EName, 
                          CESGroup = (from s in db.CES 
                               where s.EId == q.EId 
                               && s.CId == q.CId 
                               select new CESSFPS() 
                               { 
                                CESId = s.CESId, 
                                CId = s.CId, 
                                EId = s.EId == null ? 0 : (int)s.EId, 
                                FSCId = s.FSCId == null ? 0 : (int)s.FSCId, 
                                SEV = s.SEV, 
                                Score = s.Score 
                               }).ToList() 
                         }).ToList() 
                    }).ToList(); 

Извините, код немного грубый, чтобы посмотреть.

+0

любые идеи ?? заранее спасибо! – localman

ответ

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