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