我有一个运行非常慢的LINQ到实体查询。 此查询对特定数据库执行一些计算逻辑,然后将结果传递给 ViewModel。 查询非常快,直到我在查询底部添加了 4 个选择语句。 我需要 select 语句才能返回结果响应的集合。 为什么查询运行得这么慢?
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);
我很难告诉你这里到底出了什么问题,但是在遇到类似的orms问题之后,我可以建议调试问题的最佳方法是找出实际生成并针对数据库运行的sql语句。很多时候,您的ORM可能会运行太多的sql语句来获得相同的简单结果。