2012-03-21 2 views
0

나는 그것을 호출 할 때이 방법이 실패 할이 방법엔티티 프레임 워크 시간 초과 오류

public static List<SummaryItinerary> ReturnBookingsByUserGuid(Guid userGuid) 
     { 
      var entities = new gHOPEntities(); 
      var results = from itinerary in entities.Itinerary 
          where itinerary.UserGuid == userGuid 
          where itinerary.Booking 
          select new SummaryItinerary() 
            { 
             TourTitle = itinerary.Tours.Title, 
             TourId = itinerary.Tours.TourId, 
             TourSEOName = 
itinerary.Tours.SEOName, 
             DepartureDate = 
itinerary.DepartureDate, 
             Passengers = itinerary.Passengers, 
             Nights = itinerary.Nights, 
             GrandTotal = itinerary.GrandTotal, 
             AmountPaid = itinerary.AmountPaid, 
             CreationDate = 
itinerary.CreationDate 
            }; 
      var summaryItineraryList = new List<SummaryItinerary>(); 

      foreach(var summaryItinerary in results) 
      { 
       summaryItineraryList.Add(summaryItinerary); 
      } 

      return summaryItineraryList.OrderByDescending(i => 
i.CreationDate).ToList(); 
     } 

에게 있습니다. 시간 종료 오류가 리턴됩니다. 그러나 for 루프에 중단 점을 넣으면 통과합니다. 왜 이런 일이 일어나는 걸까요?

감사합니다,

Sachin

+0

참고 : 다음을 수행하는 것이 방지하기 위해 당신이'summaryItineraryList.AddRange (결과)를 사용할 수'대신 Foreach 루프 – Reniuz

+0

영향을주지 않습니다 그. –

+0

@Sachin 디버그 중이면 메소드 호출 ReturnBookingsByUserGuid의 결과를 얻을 수 있습니까? –

답변

0

이 루프에서 beacuse이다 : 그것은 데이터베이스에 보이는 모든 요소에

foreach(var summaryItinerary in results) 

. 이것은 열거 가능하므로 액세스는 각 요소를 통해 이루어지며 모든 요소 반복은 데이터베이스를 검사합니다.

var tmp = results.ToList(); 
foreach(var summaryItinerary in tmp)