У меня есть следующий запрос LINQ, который выполняет левое соединение:
var results = from v in ctx.dat_Visitor
join sp in ctx.vwSP on v.lu_Mentor.ID equals sp.ID into sp2
select new {
Visitor = v.Name,
Tot = sp2.Count(),
SP2 = sp2
};
Моя проблема в том, что этот запрос LINQ остановился на мне.Я даже увеличил время ожидания по умолчанию с 15 до 120 секунд, и оно все еще истекло.
dat_Visitor содержит не более 10 записей, но vwSP (это представление) имеет где-то около 100 000 записей.
Я точно знаю, что тайм-аут связан с тем, когда я пытаюсь на самом деле вернуть sp2 в результатах.Если я изменю свой запрос LINQ, чтобы не возвращать sp2 в результатах, то это быстро.Без sp2 запрос выглядит так:
var results = from v in ctx.dat_Visitor
join sp in ctx.vwSP on v.lu_Mentor.ID equals sp.ID into sp2
select new {
Visitor = v.Name,
Tot = sp2.Count()
};
Наконец, Я использую 3,5-фреймворк , но у меня есть серьезные мысли по поводу обновления сайта до 4.0, так как я мог тогдаиспользовать DefaultIfEmpty ().