Sql server SQL Server实体框架GetAll()太慢
使用SQL Server的实体框架通用存储库项目太慢。如何改进我的项目 这些查询将在30秒内获取数据。我在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)
答案
表中有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;
}