我正在尝试缩短与EF 6x数据存储的测试启动时间。这些测试位于事务内部,一旦完成,数据库就会回滚。我希望能提出任何建议,以便在测试会话之间保留DbContext实例,从而使EF不必再次经历整个视图生成过程。
我不想使用模拟/伪造,非Microsoft分支的EF和交互式视图已经到位。谢谢。
我不想使用模拟/伪造,非Microsoft分支的EF和交互式视图已经到位。谢谢。
如果您正在向表中插入许多记录,则可以执行批量插入。最好的库是:EntityFramework.BulkInsert-ef6。您可以通过Nuget控制台安装它。
如果在处理数据时出现缓慢,并且有许多加载/操作/保存操作,则必须像Sampath建议的那样进行内存操作。
如果正在加载数据,请只加载所需的列。您还应该使用延迟加载选项(从您的帖子中,我认为您已经很了解它)。
4.某些缓慢可能是由于数据库架构造成的。关键列类型对Where操作有相当大的影响!
我想推荐您使用内存数据
。我也使用了这种模式,它非常好用且速度非常快。这是业界推荐的模式,在长期运行中无需担心问题。在开发软件应用程序时,始终尝试使用最佳实践。
编写应用程序测试时,通常希望避免访问数据库。Entity Framework 允许您通过创建一个上下文 - 其行为由您的测试定义 - 并利用
内存
数据来实现此目的。
这里有一篇关于如何做到这一点的文章:使用模拟框架进行测试
另一篇文章供您参考:使用 xUnit、Entity Framework、Effort 和 ASP.NET Boilerplate 进行 C# 单元测试
ASP.net Boilerplate
进行应用程序开发。该框架上的“内存数据”测试模式是默认设置。https://www.aspnetzero.com/ - Sampath