Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 调用DbContext.Database.CompatibleWithModel的性能较慢_Entity Framework - Fatal编程技术网

Entity framework 调用DbContext.Database.CompatibleWithModel的性能较慢

Entity framework 调用DbContext.Database.CompatibleWithModel的性能较慢,entity-framework,Entity Framework,我们首先运行EntityFramework(6.1.3)代码,在SQLAzure上的一个小数据库(490MB)上进行大约40次迁移 在通过检查调用Database.CompatibleWithModel来验证数据库是否是最新的来扩展我们的发布过程时,我发现我们的测试实例变得相当慢:这个调用将需要2分钟才能完成。在我们的生产环境和本地,这不到一秒钟 我在本地运行了SQL探查器作业,发现只有3条语句在数据库上被激发: 数据库存在吗 数据库中有多少迁移 上次迁移的migrationId和模型是什么 当

我们首先运行EntityFramework(6.1.3)代码,在SQLAzure上的一个小数据库(490MB)上进行大约40次迁移

在通过检查调用Database.CompatibleWithModel来验证数据库是否是最新的来扩展我们的发布过程时,我发现我们的测试实例变得相当慢:这个调用将需要2分钟才能完成。在我们的生产环境和本地,这不到一秒钟

我在本地运行了SQL探查器作业,发现只有3条语句在数据库上被激发:

  • 数据库存在吗
  • 数据库中有多少迁移
  • 上次迁移的migrationId和模型是什么
  • 当我在缓慢的环境中运行这些语句时,它会在一秒钟内完成,就像在生产环境中一样。这表明数据库不是问题

    有没有人知道我们搜索性能缓慢的原因?EF是否在运行时本地计算哈希值,然后对照数据库中的模型进行检查? 我能知道散列需要多长时间吗


    我已经检查了Azure数据库上的设置,以对照数据库的兼容性级别进行检查,在发现一篇文章说EDMX编辑器使用新的基数估计器速度较慢后,但此设置似乎没有效果。

    您解决了这个问题吗?我有一个类似的问题:嗨,弗朗索瓦,唉,找不到解决方案。你知道什么时候叫它吗?我以为这只是在启动时,但我意识到有时会在出乎意料的时候调用它。除非我的webapi在没有任何操作的情况下重新启动。我们在生产中推送新的构建后自己检查它,只是为了检查数据库是否正确更新。我认为这是在DbContext实例化时自动调用的?您确定吗?我到处都在做“新上下文()”…你解决了这个问题吗?我有一个类似的问题:嗨,弗朗索瓦,唉,找不到解决方案。你知道什么时候叫它吗?我以为这只是在启动时,但我意识到有时会在出乎意料的时候调用它。除非我的webapi在没有任何操作的情况下重新启动。我们在生产中推送新的构建后自己检查它,只是为了检查数据库是否正确更新。我认为这是在DbContext实例化时自动调用的?您确定吗?我到处都在做“新上下文()”。。。