簡體   English   中英

實體框架超時錯誤

[英]Entity Framework Timeout Error

我有這種方法

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循環上放置一個斷點時,它會通過。 為什么會這樣呢?

謝謝,

薩欽

這是因為循環:

foreach(var summaryItinerary in results)

在它查找數據庫的每個元素上。 這是可枚舉的,因此訪問是通過每個元素進行的,並且每個元素迭代都會檢查數據庫。 為避免這種情況,請執行以下操作:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM