0

我有一个运行非常缓慢的 LINQ to Entity 查询。此查询在特定数据库上执行一些计算逻辑,然后将结果传递给 ViewModel。查询非常快,直到我在查询底部添加了 4 个选择语句。我需要选择语句才能返回结果响应的集合。为什么查询运行这么慢?

  var data = from SurveyResponseModel in db.SurveyResponseModels
                       group SurveyResponseModel by SurveyResponseModel.MemberId into resultCount
                       select new ResultsViewModel()
                       {

                           YesBarriersOthersResult = resultCount.Select(r => r.YesBarriersOthers),
                           NoBarriersOthersResult = resultCount.Select(r => r.NoBarriersOthers),
                           TotalResponsesResult = db.SurveyResponseModels.Count(),
                       };




            return View(data);
4

1 回答 1

3

我很难告诉你这里到底出了什么问题,但是在遇到与 orms 和所有类似的问题时,我可以建议调试问题的最佳方法是找出实际生成的 sql 语句并针对数据库运行。很多时候,您的 ORM 可能会运行太多 sql 语句来获得相同的简单结果。

于 2012-06-22T19:37:16.547 回答