繁体   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