首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在测试过程中改进实体框架性能

在测试过程中改进实体框架性能
EN

Stack Overflow用户
提问于 2016-08-24 04:33:27
回答 2查看 970关注 0票数 7

我试图减少针对EF 6x数据存储进行测试的启动时间。测试在事务中,完成后数据库将被回滚。对于如何在测试会话之间保留DbContext实例,以便EF不必再次经历整个视图生成过程,我会很感激。

我不想使用模拟/假的,非微软的EF分支和交互式视图已经到位。谢谢。

EN

回答 2

Stack Overflow用户

发布于 2016-08-30 04:13:44

不同的选择。由于您没有提到您的测试目标,而且也没有任何代码,因此选项如下:

  1. 如果要向表中插入许多记录,则可以执行大容量插入。最好的库是:EntityFramework.BulkInsert-ef6。您可以通过Nuget控制台安装它。
  2. 如果您在处理数据时看到速度慢,并且有许多加载/操作/保存操作,那么您必须按照采马路的建议在内存中执行操作。
  3. 如果要加载数据,只需加载所需的列即可。您还应该使用延迟加载选项(从您的帖子中,我认为您非常了解它)。

4.缓慢的部分原因可能是数据库的体系结构。键列类型对Where操作有相当大的影响!

票数 1
EN

Stack Overflow用户

发布于 2016-08-24 04:47:12

我建议您在这方面使用in-memory data。我也使用这个模式,它真的很好,非常快。这是行业推荐的模式,从长远来看没有麻烦。在开发软件应用程序时,一定要尝试使用最佳实践。

在为您的应用程序编写测试时,通常希望避免访问数据库。实体框架允许您通过创建使用in-memory数据的上下文(通过测试定义的行为)来实现这一点。

下面是关于如何做到这一点的文章:

给您的另一篇文章:在C#中使用xUnit、实体框架、工作和ASP.NET模板进行单元测试

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39114486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档