簡體   English   中英

LINQ到實體查詢的執行時間

[英]LINQ to Entity query execution time

我有此LINQ to Entity查詢,可獲取約5000個Plus記錄。 我注意到,返回的記錄越高,執行查詢和返回結果所花費的時間就越多。

 lstUserAssignments =  context.UserAssessments.Where(a=>a.UserID == UserID && a.CourseID == ClassID && a.ProductID == a.ProductID && a.AppID == ApplicationID && a.IsDeleted == false && a.Score_Percentage >= 0).Select(a=> new UserAssessmentEntity()
                                          {
                                              ApplicationID = a.AppID,
                                              AttemptNo = a.AttemptNo,
                                              CourseID = a.CourseID,
                                              Score_Percentage = (float)(a.Score_Percentage != null ? a.Score_Percentage : 0),
                                              Status = a.Status,
                                              UserAssessmentID = a.UserAssessmentID,
                                              UserID = a.UserID,
                                              UserScore = a.User_Score,
                                              CreatedDateTime = a.CreatedDateTime,
                                              ModifiedDateTime = a.ModifiedDateTime,
                                              TimeSpent=a.UserAssessmentDetails.Sum(i=>i.TimeSpent??0),
                                              InstructorFeedbackText = a.UserAssessmentDetails.FirstOrDefault()!=null?a.UserAssessmentDetails.FirstOrDefault().InstructorFeedbackText:string.Empty
                                          }).ToList();

使查詢簡單。 有UserAssessment和UserAssessmentDetails表。 第一個是父母,第二個是孩子。 查詢中存在一些性能問題,我在計算TimeSpent和InstructorFeedback時感覺到了。 誰能指出我的問題。

Take and Skip:
context.UserAssessments.Where(a=>a.UserID == UserID && a.CourseID == ClassID && a.ProductID == a.ProductID && a.AppID == ApplicationID && a.IsDeleted == false && a.Score_Percentage >= 0).Select(a=> new UserAssessmentEntity()
                                          {
                                              ApplicationID = a.AppID,
                                              AttemptNo = a.AttemptNo,
                                              CourseID = a.CourseID,
                                              Score_Percentage = (float)(a.Score_Percentage != null ? a.Score_Percentage : 0),
                                              Status = a.Status,
                                              UserAssessmentID = a.UserAssessmentID,
                                              UserID = a.UserID,
                                              UserScore = a.User_Score,
                                              CreatedDateTime = a.CreatedDateTime,
                                              ModifiedDateTime = a.ModifiedDateTime,
                                              TimeSpent=a.UserAssessmentDetails.Sum(i=>i.TimeSpent??0),
                                              InstructorFeedbackText = a.UserAssessmentDetails.FirstOrDefault()!=null?a.UserAssessmentDetails.FirstOrDefault().InstructorFeedbackText:string.Empty
                                          }).Take(10).Skip(10).ToList();

暫無
暫無

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

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