[英]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.