ToListAsync()與ToList()相比非常慢

asp.net-core-mvc entity-framework-core

我有一個複雜的LINQ查詢與分組和多個包含。我發現ToListAsync()需要多於秒才能完成,而ToList()則會在幾分之一秒內返回。

allReservationsList = allReservations.ToList(); // fast
allReservationsList = await allReservations.ToListAsync(); // more then a second for 60 rows

我做錯了什麼或是實體框架的問題?

這是查詢:

            var reservations = db.Reservations
                .Include(r => r.PickUpLocation)
                .Include(r => r.ReturnLocation)
                .Include(r => r.RequestedVehicleModel).ThenInclude(m => m.Photos)
                .Include(r => r.RequestedVehicleModel.VehicleType.VehicleModels)
                .Include(r => r.RequestedVehicleType).ThenInclude(t => t.Photos)
                .Include(r => r.AssignedUnit.VehicleModel.VehicleType)
                .Include(r => r.DailyPrice.Currency);

            var allReservations =
                from r in reservations
                orderby r.VersionDate descending
                group r by r.BookingCode into g
                select g;

熱門答案

這裡的變量太多了。但是,一般來說,異步方法返回的時間比同步方法要長,這只是因為異步具有更多的開銷。無論是否考慮到您所看到的整個延遲,至少根據您提供的信息,無法判斷。



許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因