2012-09-13 125 views
0

我制作了一个新的asp.net mvc4应用程序,然后安装了miniprofiler。首先剖析asp.net mvc4代码

然后我刚刚启用迁移和添加迁移后,我更新了我的数据库。

使用miniprofiler我发现有3个sql查询,我不知道他们。

我不知道这个初始化发生

InitializeDatabase <PerformDatabaseInitialization>b__6 PerformInitializationAction PerformDatabaseInitialization 

这里是miniprofiler miniprofiler

这些是什么3个SQL查询的照片吗?他们来自哪里?

回答

0

这是EF Migrations检查数据库是否与EF模型相同。每当您运行迁移时,EF都会在[__MigrationHistory]表中存储迁移的详细信息,以便知道是否需要运行迁移。

  • 我不是太肯定第一个查询,但我认为这是检查是否使用EF(这是在看堆栈跟踪猜测)所产生的分贝任何 表。

  • 第二个查询只是返回迁移次数。

  • 最终查询得到最新的迁移,然后将 与EF模型进行比较。如果模型与数据库不同,则会导致数据库过期。

由于迁移检查仅在每次应用程序启动时运行一次,因此您不必担心这些问题。

如果你想要更多关于db初始器的信息,请看this