从我的集成测试:
// Act
Stopwatch w = new Stopwatch();
w.Start();
userService.Create(userDTO);
w.Stop();
public void Create(UserDTO userDTO)
{
var user = userDTO.ToEntity();
_context.Entry(user).State = EntityState.Added;
_context.SaveChanges();
}
6,2 秒做一次“sql 插入”是疯狂的。我已经看到应用程序用户在他们第一次打开他们全年使用的项目时提示。所以每天他们要等6秒……
我认为 EF6 中的预热时间有所改善?
我能做些什么来改善这种悲惨的行为吗?
最佳答案
时间不是花在插入简单数据上的。 EF 在内存中创建模型,这就是你花费的时间。
EF 创建实体数据模型并在您第一次对上下文执行操作时执行 View 生成(而不是数据库 View )。看看this blog post .
看看here通过使用预先生成的 View 来减少模型加载时间来提高性能。
为了提高性能,您可以在启动应用程序时初始化上下文异步。注意多线程问题。
using (var context = new MyContext())
{
context.Database.Initialize(false);
}
关于entity-framework - 第一个 Entity Framework 6 非查询的 6 秒预热时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20565679/