0

新しいasp.net mvc4アプリを作成してから、ミニプロファイラーをインストールしました。

次に、移行を有効にして、移行を追加した後、データベースを更新しました。

miniprofiler を使用して、私が知らない SQL クエリが 3 つあることがわかりました。

この初期化がどこで行われるのかわかりません

 InitializeDatabase <PerformDatabaseInitialization>b__6 PerformInitializationAction PerformDatabaseInitialization

これがミニプロファイラーの写真ですミニプロファイラー

これらの 3 つの SQL クエリは何ですか? 彼らはどこから来たのですか?

4

1 に答える 1

0

これは、データベースがEFモデルと同じであるかどうかをチェックするEF移行です。移行を実行するたびに、EFは移行の詳細を[__MigrationHistory]テーブルに格納するため、移行を実行する必要があるかどうかがわかります。

  • 最初のクエリについてはよくわかりませんが、データベース内のテーブルがEFを使用して生成されたかどうかをチェックしていると思います(これはスタックトレースからの推測です)。

  • 2番目のクエリは、移行の数を返すだけです。

  • 最後のクエリは最新の移行を取得し、それがEFモデルと比較されます。モデルがデータベースと異なる場合、データベースが古くなっているという例外がスローされます。

移行チェックはアプリケーションの起動ごとに1回だけ実行されるため、これらについて心配する必要はありません。

dbイニシャライザーの詳細については、こちらをご覧ください

于 2012-09-14T15:46:21.840 に答える