在测试期间改进实体框架性能

Vas*_*Vas 7 .net c# database testing entity-framework

我正在尝试减少针对EF 6x数据存储的测试的启动时间.测试在一个事务中,db完成后会回滚.我将不胜感激任何关于如何在测试会话之间保留DbContext实例的建议,以便EF不必再次完成整个视图生成过程?

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

Sam*_*ath 0

我想推荐您使用in-memory data它。我也用过这个模式,效果非常好,速度也很快。这是业界推荐的模式,从长远来看不会出现任何问题。开发软件应用程序时,请始终尝试使用最佳实践。

\n\n
\n

为应用程序编写测试时,通常希望避免访问数据库。实体框架允许您通过创建上下文 \xe2\x80\x93 来实现此目的,其中的行为由使用数据的测试 \xe2\x80\x93 定义in-memory

\n
\n\n

这是有关如何执行此操作的文章:使用模拟框架进行测试

\n\n

另一篇文章适合您:使用 xUnit、Entity Framework、Effort 和 ASP.NET Boilerplate 在 C# 中进行单元测试

\n

  • @Sampath为什么不推荐?因为它比较慢还是?您到底在使用假提供程序测试什么 - 完美运行的 LINQ to Objects 查询在运行时在 LINQ to Entities 中抛出不支持的异常? (2认同)