Sql server SQL Server实体框架GetAll()太慢

Sql server SQL Server实体框架GetAll()太慢,sql-server,entity-framework,Sql Server,Entity Framework,使用SQL Server的实体框架通用存储库项目太慢。如何改进我的项目 这些查询将在30秒内获取数据。我在答案表中有1000项,在问题表中有300行 List<QuestionVM> questionList = questionServices.GetAll() .Where(x => x.SubCategory_Id == id)

使用SQL Server的实体框架通用存储库项目太慢。如何改进我的项目

这些查询将在30秒内获取数据。我在
答案
表中有1000项,在
问题
表中有300行

  List<QuestionVM> questionList = questionServices.GetAll()
                                                  .Where(x => x.SubCategory_Id == id) 
                                                  .ToList();
  List<AnswerVM> answersList = answerServices.GetAll()
                                             .Where(x => x.SubCat_Id == id)
                                             .ToList();
如何改进我的项目

一种简单的方法是扔掉自定义存储库,直接使用DbContext

您将从数据库返回所有行,并在客户端上对它们进行筛选。您需要在DbContext中过滤数据库集,然后将数据复制到ViewModel中

如何改进我的项目

一种简单的方法是扔掉自定义存储库,直接使用DbContext


您将从数据库返回所有行,并在客户端上对它们进行筛选。您需要在DbContext中过滤数据库集,然后将数据复制到ViewModel中。

不,它从来都不是最新的概念。这一直是受教育程度低的错觉。您确实使用了一个reposiutory,您确实使用了工作单元——它被称为DbContext。我所见过的所有实现都以一种很难处理的方式将概念复杂化。通用上下文是有位置的,但当你已经有了通用上下文时就没有了。使用DbContext。仅更改为在服务上向GetAll()发布id。现在一切都正常了。谢谢。不,这从来不是最新的概念。这一直是受教育程度低的错觉。您确实使用了一个reposiutory,您确实使用了工作单元——它被称为DbContext。我所见过的所有实现都以一种很难处理的方式将概念复杂化。通用上下文是有位置的,但当你已经有了通用上下文时就没有了。使用DbContext。仅更改为在服务上向GetAll()发布id。现在一切都正常了。谢谢
public IEnumerable<QuestionVM> GetAll()
{
    var data = ProjectMapper.ConvertToVMList<IEnumerable<QuestionVM>>(_QuestionRepository.GetAll());
    return (IEnumerable<QuestionVM>)data;
}